Skip to content

Commit

Permalink
Исправляет про event loop в JS (#5530)
Browse files Browse the repository at this point in the history
Co-authored-by: Tatiana Fokina <[email protected]>
Co-authored-by: Vitya <[email protected]>
  • Loading branch information
3 people authored Nov 18, 2024
1 parent 31472ed commit 8e5ca00
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion js/queuemicrotask/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,11 @@ JavaScript имеет в своём арсенале различные _вид
- _очередь микрозадач_ — контейнер для хранения асинхронных операций с высоким приоритетом;
- _очередь макрозадач_ — контейнер для хранения асинхронных операций с низким приоритетом.

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

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

</details>

0 comments on commit 8e5ca00

Please sign in to comment.