Skip to content

Commit 6f3c709

Browse files
committed
Translation fixes
1 parent 8df4a0d commit 6f3c709

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

1-js/11-async/07-microtask-queue/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ alert("код выполнен"); // этот alert показывается п
2727

2828
Как сказано в [спецификации](https://tc39.github.io/ecma262/#sec-jobs-and-job-queues):
2929

30-
- Очередь определяется как первым-зашел-первым-вышел (FIFO): задачи, попавшие в очередь первыми, выполняются тоже первыми
30+
- Очередь определяется как первым-зашел-первым-вышел (FIFO): задачи, попавшие в очередь первыми, выполняются тоже первыми.
3131
- Выполнение задачи происходит только в том случае, если ничего больше не запущено.
3232

3333
Или, проще говоря, когда промис выполнен, его обработчики `.then/catch/finally` попадают в очередь. Они пока не выполняются. Движок JavaScript берёт задачу из очереди и выполняет ее, когда он освободится от выполнения текущего кода.
@@ -60,24 +60,24 @@ Promise.resolve()
6060

6161
Примеры событий:
6262
- `mousemove`, пользователь двигает указатель мыши.
63-
- `setTimeout` запланированный вызов обработчика.
63+
- `setTimeout`, запланированный вызов обработчика.
6464
- внешний `<script src="...">` загружен, готов к выполнению.
6565
- сетевая операция, например, `fetch` завершена.
6666
- ... и т.д.
6767

68-
Что-то происходит -- движок это обрабатывает -- и снова ждет наступления события (пока он находится в спящем режиме, потребление ресурсов CPU близко к нулю).
68+
Что-то происходит -- движок это обрабатывает -- и снова ждёт наступления события (пока он находится в спящем режиме, потребление ресурсов CPU близко к нулю).
6969

7070
![](eventLoop.png)
7171

72-
Как вы можете видеть, здесь так же есть очередь. Так называемая "макроочередь задач (macrotask queue)" (v8 term).
72+
Как вы можете видеть, здесь также есть очередь. Так называемая "макроочередь задач (macrotask queue)" (термин v8).
7373

7474
В случае, если событие наступает, когда движок занят, его обработка добавляется в очередь.
7575

76-
Например, когда движок занят обработкой сетевого запроса `fetch`, пользователь может перемещать указатель мыши благодаря обработке события `mousemove`, может быть вызван `setTimeout` и т.д. как показано на картинке выше.
76+
Например, когда движок занят обработкой сетевого запроса `fetch`, пользователь может перемещать указатель мыши, вызывая событие `mousemove`, может сработать `setTimeout` и т.д., как показано на картинке выше.
7777

7878
События из очереди макрособытий обрабатываются по принципу первый зашел - первый обслужен. Когда движок браузера заканчивает с выполнением `fetch`, он обрабатывает событие `mousemove`, потом вызывает обработчик `setTimeout` и т.д.
7979

80-
Пока все довольно понятно, не так ли? Движок занят, соответственно другие задачи ждут в очереди.
80+
Пока всё довольно понятно, не так ли? Движок занят, соответственно другие задачи ждут в очереди.
8181

8282
Сейчас важный момент.
8383

@@ -102,7 +102,7 @@ alert("code");
102102
2. `promise` отображается вторым, т.к. `.then` проходит через очередь микрозадач и запускается после текущего кода.
103103
3. `timeout`- показывается последним, т.к. это макрозадача.
104104

105-
Может случится так, что в процессе выполнения макрозадачи будет создан новый промис.
105+
Может случиться так, что в процессе выполнения макрозадачи будет создан новый промис.
106106

107107
Или наоборот, в микрозадаче будет запланирована макрозадача (например `setTimeout`).
108108

@@ -120,7 +120,7 @@ Promise.resolve()
120120

121121
Естественно, `promise` отображается первым, т.к. макрозадача `setTimeout` ожидает в менее приоритетной очереди макрозадач.
122122

123-
В качестве логического cледствия, макрозадачи выполняются только когда промисы дают движку "свободное время". Так если у нас есть цепочка промисов не ожидающая ничего, то такие вещи как `setTimeout` или обработчики событий могут никогда не попасть в середину.
123+
В качестве логического cледствия, макрозадачи выполняются, только когда промисы дают движку "свободное время". Так, если у нас есть цепочка промисов, не ожидающая ничего, как `setTimeout` или обработчики событий могут никогда не попасть в середину (между промисами).
124124

125125

126126
## Необработанный rejection
@@ -141,7 +141,7 @@ window.addEventListener('unhandledrejection', event => {
141141
});
142142
```
143143

144-
Мы создаем rejected `промис` и не обрабатываем ошибку. Таким образом, мы видим событие "unhandled rejection" (также будет выведено в консоли).
144+
Мы создаем отклонённый (rejected) `промис` и не обрабатываем ошибку. Таким образом, мы видим событие "unhandled rejection" (также будет выведено в консоли).
145145

146146
Мы не получим его, если мы добавим `.catch`, например так:
147147

@@ -151,11 +151,11 @@ let promise = Promise.reject(new Error("Promise Failed!"));
151151
promise.catch(err => alert('поймана'));
152152
*/!*
153153

154-
// ошибки нет, все тихо
154+
// ошибки нет, всё тихо
155155
window.addEventListener('unhandledrejection', event => alert(event.reason));
156156
```
157157

158-
Сейчас попробуем споймать ошибку, но после `setTimeout`:
158+
Сейчас попробуем поймать ошибку, но после `setTimeout`:
159159

160160
```js run
161161
let promise = Promise.reject(new Error("Promise Failed!"));

0 commit comments

Comments
 (0)