@Igorek98

Await не работает с обычными функциями?

Помогите разобраться.
Через await нельзя просто обратиться к вызову функции?
Только через функция, которая будет создана через промис?
В статье было написано, что await это заменитель промиса и я решил попробовать его использовать с обычной функцией.
function say() {
	console.log('say hello');
	return 'say';
}
async function start() {
	console.log('Start');
	await setTimeout(say, 3000);
	console.log('End');
}
start();
  • Вопрос задан
  • 108 просмотров
Решения вопроса 2
mmmaaak
@mmmaaak
То, что ты вызываешь с await, должно возвращать промис
Ответ написан
async-await - это синтаксический сахар над генераторами и промисами, как yield можно использовать только в генераторе, так и await можно использовать только в функциях, объявленных с async.

А сам await можно использовать с чем угодно, не только с функциями, которые возвращают промис, вот этот код тоже абсолютно корректен и работает как ожидается:

async function foo() { 
  console.log(await 1);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы