Async и Promise
Последовательное выполнение операций можно добиться несколькими способами.
Ниже пример поочередного выполнения на примере promise и async. Async возвращает promise и далее работает как promise.
Результат выполнения функций ниже будет одинаковым.
// async
async function fn() {
return 'hello';
}
fn().then(console.log)
// hello
// promise
function fn() {
return Promise.resolve('hello');
}
fn().then(console.log);
// hello
Async / await
Await работает только внутри async функции.
async function f() {
let promise = new Promise((resolve) => {
setTimeout(() => resolve("готово!"), 3000)
});
let result = await promise; // будет ждать, пока промис не выполнится (*)
console.log(result);
}
f(); // выведет "готово!" через 3 сек