foo() {
console.log(2);
setTimeout(() => {
console.log('v');
});
}
async function bar() {
console.log(3);
await foo();
console.log(4);
}
bar();
console.log(5);
// 1
// s
// 3
// 2
// 5
// 4
// v
Ребят, может кто объяснить почему console.log в foo, сразу вызывается, разве это не микротаска?
2 вызывается сразу после вызова foo а вот settimeout уже добавляется в «стек/очередь»
Зачем await Foo если она синхронная? Второй лог вызовется сразу, а v уже будет микротаской и вызовется как только истечет таймаут + освободится место в очереди
foo - даже не промис. Непонятно, чего ее через await вызывают.
Обсуждают сегодня