и евентлуп добавляет инструкции в коллстэк по порядку.
Если попадается асинхронный код - его выполнение попадает в очередь колбэков. Когда коллстэк становится пустым, евентлуп берет задачу уже из очереди колбэков.
Если я правильно все понял, то вопрос такой. Если ответ асинхронного кода пришел до того, как скажем отработаны все инструкции скрипта (евентлуп еще не взял их в работу), будут браться задачи из коллстэка или из очереди колбэков?
ответ асинхронного кода, это промис; промис это асинхронная функция; она кладется в стек отложенных функций, и выполняется, когда ивентлуп исчерпан/закончил работу
Я просто пытаюсь понять это "исчерпан" Условно вернулся промис, а скрипт еще до конца не пройден, например там еще несколько раз надо вывести в консоль по миллиону сообщений. Так вот, сначала выведутся все эти циклы, выводящие по миллиону сообщений или промис втиснется между ними?...
не втиснется колбэки лежат отдельно и никогда не прерывают выполнение синхронного кода
Понял, большое спасибо.
Обсуждают сегодня