Задать вопрос
@historydev
Mistkerl, drück den Knopf.

Почему ответ промиса пустой?

Добрый вечер.Подскажите пожалуйста.Я пытаюсь достать информацию с сервера используя промис,но ответы приходят пустые.

Клиент:
const sendMenu = ms => {
				return new Promise(r => setTimeout(() => r(), ms))
			}

			const url = 'http://localhost:3000/menu'

			function fetchTodos() {
				console.log('Fetch todo started...')
				return sendMenu(2000).then(() => {
					return fetch(url)
				})
				.then(response => response)
			}

			fetchTodos()
				.then(data => {
					console.log('Data: ',data)
				})
				.catch(e => console.error(e))


Сервер:
app.post('/menu', (req,res) => {

		let viewmenu;

		connection.query('SELECT * FROM menu', (err, result) => {
			  if(err) {
			    console.error(err);
			    return;
			  }

			  const index = result.reduce((acc, row) => ({...acc, [row.id]: row}), {});
					var menu = [];
					for(const row of result) {
					    if(row.parent_id === 0) {
					      menu.push(row);
					      continue;
					    }
					    const parent = index[row.parent_id];
					    if(!parent) {
					      console.warn(`Undefined parent with id ${row.parent_id}`);
					      continue;
					    }
					    if(!parent.children) {
					      parent.children = [];
					    }
					    parent.children.push(row);
					    
			  }

			  viewmenu = menu;

		});

		const sendMenu = ms => {
			return new Promise(r => setTimeout(() => r(), ms))
		}

		sendMenu(200).then(() => res.send(viewmenu))

})

5dc9a8db1a420266971493.png
  • Вопрос задан
  • 62 просмотра
Подписаться Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
Потому что сначала уходит ответ, сервера, а потом происходит получение данных из базы. Переместите код ответа внутрь коллбэка получения данных из базы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы