
JavaScript имеет в своём арсенале различные виды очередей, а также стек вызовов.
Необходимый минимум, который поможет разобраться с процессом работы:
✓ Стек вызовов — служит для выполнения синхронных операций;
✓ Очередь микрозадач — контейнер для хранения асинхронных операций, имеющих высокий приоритет;
✓ Очередь макрозадач — контейнер для хранения асинхронных операций с низким приоритетом.
Процесс работы между этими самыми элементами:
✓ Первый, кто начинает процесс выполнения — стек вызовов;
✓ После того, как JavaScript убеждается, в том, что стек пуст — в него по очереди добавляются задачи из очереди микрозадач;
✓ Процесс выполнения продолжается до тех пор, пока не станет ясно, что очередь опустела. Как только это произойдёт — выполняются задачи из очередь макрозадач;
✓ Очередь макрозадач является завершающим этапом. После того как список в нем станет пустым — все повторяется по новой.
Необходимый минимум, который поможет разобраться с процессом работы:
✓ Стек вызовов — служит для выполнения синхронных операций;
✓ Очередь микрозадач — контейнер для хранения асинхронных операций, имеющих высокий приоритет;
✓ Очередь макрозадач — контейнер для хранения асинхронных операций с низким приоритетом.
Процесс работы между этими самыми элементами:
✓ Первый, кто начинает процесс выполнения — стек вызовов;
✓ После того, как JavaScript убеждается, в том, что стек пуст — в него по очереди добавляются задачи из очереди микрозадач;
✓ Процесс выполнения продолжается до тех пор, пока не станет ясно, что очередь опустела. Как только это произойдёт — выполняются задачи из очередь макрозадач;
✓ Очередь макрозадач является завершающим этапом. После того как список в нем станет пустым — все повторяется по новой.