Я стараюсь лучше понять, как работает модель выполнения JavaScript, в частности, с глобальным контекстом выполнения (GEC) и как она взаимодействует со стеком вызовов, обещаний и цикла событий. < /p>
Рассмотрим следующий пример: < /p>
console.log("Start");
setTimeout(() => {
console.log("Timeout callback");
}, 0);
Promise.resolve().then(() => {
console.log("Promise callback");
});
console.log("End");
< /code>
Из моего понимания: < /p>
Сначала выполняется весь синхронный код. Является ли: < /p>
Когда фактически выскочивается контекст глобального выполнения (GEC) из стека вызовов? /> Я в замешательстве, потому что я знаю, что цикл события запускает MicroTasks только в том случае, если стек вызовов пуст, но в то же время люди говорят, что GEC «остается активным» после синхронного кода. < /p>
Остается ли GEC в стеке, когда обрабатывается очередь микротаски? Или он выскочил сразу после завершения синхронного кода?
Подробнее здесь: https://stackoverflow.com/questions/796 ... l-stack-in