Skip to content

Commit 3b90649

Browse files
author
Zaiko Euheni
committed
feat: add task and solution
1 parent 033c7b1 commit 3b90649

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
Вывод в консоли:
2+
1
3+
7
4+
3
5+
5
6+
2
7+
6
8+
4
9+
10+
Давайте разберем что здесь происходит.
11+
12+
Сразу исполняются функции стоящие в стеке первой макрозадачи - главного скрипта.
13+
Вывод в консоль: "1" .
14+
15+
В второй строке `setTimeout`, который ставит переданный колбэк в очередь макрозадач (macrotask queue) на выполнение.("2")
16+
Далее происходит аналогичная операция в шестой строке.("6")
17+
18+
Вывод в консоль: "7".
19+
Конец первой макрозадачи.
20+
21+
Переходим в область микрозадач, происходит выполнение всех микрозадач:
22+
1. Вывод в консоль: "3".
23+
2. Создаётся макрозадача setTimeout, которая ставится в очередь уже имеющеёся макрозадачи.("4")
24+
3. Вывод в консоль: "5".
25+
Стек микрозадач пуст.
26+
27+
Продолжается выполнение кода из очереди макрозадач:
28+
Вывод в консоль: "2".
29+
Вывод в консоль: "6".
30+
Вывод в консоль: "4".
31+
32+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
importance: 5
2+
3+
---
4+
5+
# Что код выведет в консоли?
6+
7+
```js
8+
console.log(1);
9+
10+
setTimeout(() => console.log(2));
11+
12+
Promise.resolve().then(() => console.log(3));
13+
14+
Promise.resolve().then(() => setTimeout(() => console.log(4)));
15+
16+
Promise.resolve().then(() => console.log(5));
17+
18+
setTimeout(() => console.log(6));
19+
20+
console.log(7);
21+
```
22+

0 commit comments

Comments
 (0)