await не ожидает выполнения функции
Почему await в данном случае не позволят дождаться функции t и сразу же выводится 0?
async function TEST() {
let a = 0;
let t = () => {
setTimeout(() => {
a++;
});
}
await t();
console.log(a);
}
TEST();
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
await ожидает только функции, возвращающие Promise, а t в вашем примере — другой тип асинхронной функции, использующей колбек.
Работающий вариант, близкий к вашему:
async function TEST() {
let a = 0;
const t = () => new Promise((resolve) => {
setTimeout(() => { a++; resolve(); }, 0);
});
await t();
console.log(a);
}
TEST();
Подробнее см. в https://learn.javascript.ru/async