Показать сообщение отдельно
  #5 (permalink)  
Старый 02.04.2020, 09:22
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Сообщение от voraa Посмотреть сообщение
Есть тут особенность. Оператор await можно использовать только внутри асинхронных функций.
Поэтому надо обернуть код в асинхронную функцию, а потом вызывать ее

async function main () {
	async function f() {

	  let promise = new Promise((resolve, reject) => {
		setTimeout(() => resolve("готово!"), 1000)
	  });

	 return promise; // будет ждать, пока промис не выполнится (*)

	  
	}

	alert( await f());

}

main()


Другой вариант - просто использовать then

async function f() {

	  let promise = new Promise((resolve, reject) => {
		setTimeout(() => resolve("готово!"), 1000)
	  });

	 return promise; // будет ждать, пока промис не выполнится (*)

	  
	}

	f().then (res => alert(res))
Я, конечно сам виноват. Не совсем корректно задал вопрос.
По большому-то счету нет задачи вывести алертом "готово", задача var i = f(), с тем, чтобы в i оказалось готово.
Ответить с цитированием