You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Очередь определяется как первым-зашел-первым-вышел (FIFO): задачи, попавшие в очередь первыми, выполняются тоже первыми.
31
31
- Выполнение задачи происходит только в том случае, если ничего больше не запущено.
32
32
33
-
Или, проще говоря, когда промис выполнен, его обработчики `.then/catch/finally` попадают в очередь. Они пока не выполняются. Движок JavaScript берёт задачу из очереди и выполняет ее, когда он освободится от выполнения текущего кода.
33
+
Или, проще говоря, когда промис выполнен, его обработчики `.then/catch/finally` попадают в очередь. Они пока не выполняются. Движок JavaScript берёт задачу из очереди и выполняет её, когда он освободится от выполнения текущего кода.
34
34
35
35
Вот почему сообщение "код выполнен" в примере выше будет показано первым.
36
36
@@ -120,7 +120,7 @@ Promise.resolve()
120
120
121
121
Естественно, `promise` отображается первым, т.к. макрозадача `setTimeout` ожидает в менее приоритетной очереди макрозадач.
122
122
123
-
В качестве логического cледствия, макрозадачи выполняются, только когда промисы дают движку "свободное время". Так, если у нас есть цепочка промисов, не ожидающая ничего, как `setTimeout`или обработчики событий могут никогда не попасть в середину (между промисами).
123
+
В качестве логического cледствия, макрозадачи выполняются, только когда промисы дают движку "свободное время". Так, если у нас есть цепочка промисов, не ожидающая ничего, то функции обратного вызова из `setTimeout`обработчиков событий могут никогда не попасть в середину (между промисами).
Мы создаем отклонённый (rejected) `промис` и не обрабатываем ошибку. Таким образом, мы видим событие "unhandled rejection" (также будет выведено в консоли).
144
+
Мы создаём отклонённый (rejected) `промис` и не обрабатываем ошибку. Таким образом, мы видим событие "unhandled rejection" (также будет выведено в консоли).
145
145
146
146
Мы не получим его, если мы добавим `.catch`, например так:
0 commit comments