что луп берет задачи из call stack. Стек у нас LIFO структура, исходя из этого последняя попавшая в стек задача первой отправляется в ивент луп.
Синхронный код должен выполняться последовательно, но задачи берутся из стека, то есть попавшая в стек задача позднее выполнится раньше той которая попала первой.
Это не соответствует реальности, кто-нибудь может мне объяснить в чём моя логическая ошибка?
а у меня array.form
Попадает туда какой то консоль лог он отрабатывает, после него попадает ещё что то тоже отрабатывает и уходит Попадает твоя функция и если в ней есть ещё какой то вызов функции то он попадет поверх в колстеке верхней функции, отработает, а потом отработает нижняя так как её тело закончится Грубо говоря как я понимаю в колстеке может находится только одна задача То есть та что идёт ниже по коду в колстек не попадёт пока верхняя не завершит выполнение
Получилось разобраться, нашел простой пример. function firstFunction(){ console.log("first"); } function secondFunction(){ firstFunction(); } function thirdFunction(){ secondFunction(); } thirdFunction(); Стек будет выглядеть так: console.log firstFunction secondFunction thirdFunction то есть в итоге всё логично, будут выполняться все вложенные вызовы начиная с конца, а thirdFunction так и будет висеть в стеке пока они не выполнятся. Но при этом дальше код не продвинется, пока стек не очистится
Обсуждают сегодня