@historydev
Острая аллергия на анимешников

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

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

Клиент:
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
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
Потому что сначала уходит ответ, сервера, а потом происходит получение данных из базы. Переместите код ответа внутрь коллбэка получения данных из базы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
01 июн. 2024, в 22:34
2500 руб./за проект
01 июн. 2024, в 21:40
2500 руб./в час
01 июн. 2024, в 21:05
1000 руб./за проект