Код: Выделить всё
console.log("Start");
setTimeout(() => console.log("Timeout 1"), 0);
async function asyncFunc() {
console.log("Async Start");
await new Promise((resolve) => setTimeout(() => resolve(), 0));
console.log("Async End");
}
asyncFunc();
Promise.resolve().then(() => console.log("Promise 1"));
setTimeout(() => console.log("Timeout 2"), 0);
console.log("End");< /code>
< /div>
< /div>
< /p>
Мой прогноз для приведенного выше фрагмента: < /p>
("start","Async Start","End","Async End","Promise 1","Timeout 1","Timeout 2")
< /code>
Поскольку очередь обещаний в MicroTask, временные очереди в очереди обратного вызова, General Console.log () выполняются синхронно, если они не ожидаются предыдущим утверждением, которое перемещает их к очереди микрозамачивания.("Start" ,"Async Start", "End" , "Promise 1" , "Timeout 1" , "Async End" ,"Timeout 2")
Где я ошибаюсь в моем понимании?
Подробнее здесь: https://stackoverflow.com/questions/795 ... -snippet-w