Заказ на выполнение очередей в очереди JavaScript. Пожалуйста, дайте вывод фрагмента с рассуждениемJavascript

Форум по Javascript
Ответить
Anonymous
 Заказ на выполнение очередей в очереди JavaScript. Пожалуйста, дайте вывод фрагмента с рассуждением

Сообщение Anonymous »

Пожалуйста, предсказайте вывод вместе с рассуждением очереди событий приведенного ниже фрагмента. class = "Snippet-Code">

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»