Skip to content

Commit 8df4a0d

Browse files
committed
Translation fixes
1 parent 3f2a1e3 commit 8df4a0d

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

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

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

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

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

33-
Или, проще говоря, когда промис выполнен, его обработчики `.then/catch/finally` попадают в очередь. Они пока не выполняются. Движок JavaScript берет задачу из очереди и выполняет ее, когда он освободится от выполнения текущего кода.
33+
Или, проще говоря, когда промис выполнен, его обработчики `.then/catch/finally` попадают в очередь. Они пока не выполняются. Движок JavaScript берёт задачу из очереди и выполняет ее, когда он освободится от выполнения текущего кода.
3434

3535
Вот почему сообщение "код выполнен" в примере выше будет показано первым.
3636

@@ -40,9 +40,9 @@ alert("код выполнен"); // этот alert показывается п
4040

4141
Если есть цепочка с несколькими `.then/catch/finally`, то каждый из них выполняется асинхронно. То есть сначала ставится в очередь, а потом выполняется, когда выполнение текущего кода завершено и добавленные ранее в очередь обработчики выполнены.
4242

43-
**Но что если порядок имеет значение для нас? Как мы можем сделать работу `код выполнен` после того, как `промис завершен`?**
43+
**Но что если порядок имеет значение для нас? Как мы можем вывести `код выполнен` после `промис завершен`?**
4444

45-
Легко, просто добавим её в очередь вместе с `.then`:
45+
Легко, используя `.then`:
4646

4747
```js run
4848
Promise.resolve()
@@ -56,7 +56,7 @@ Promise.resolve()
5656

5757
Браузерный JavaScript, также как Node.js, основывается на *цикле событий (event loop)*.
5858

59-
"Цикл событий" это процесс, при котором движок спит и ждет очереди, потом реагирует на нее и снова засыпает.
59+
"Цикл событий" - это процесс, при котором движок спит и ждёт очереди, а потом реагирует на неё и снова засыпает.
6060

6161
Примеры событий:
6262
- `mousemove`, пользователь двигает указатель мыши.
@@ -169,22 +169,22 @@ window.addEventListener('unhandledrejection', event => alert(event.reason));
169169

170170
Сейчас снова возник необработанный rejection. Почему? Потому что `unhandledrejection` срабатывает, когда очередь микрозадач выполнена. Движок проверяет промисы и, если если какой-либо из них в состоянии "rejected", то генерируется событие.
171171

172-
В примере `.catch`, добавленный в `setTimeout`, также срабатывает, конечно срабатывает, но позже, после возникновения `unhandledrejection`.
172+
В примере `.catch`, добавленный в `setTimeout`, также срабатывает, но позже, после возникновения `unhandledrejection`.
173173

174174
## Итого
175175

176-
- Обработка промисов всегда синхронная, т.к. все действия промисов проходят через внутреннюю очередь "promise jobs", также называемую "очередь микрозадач (microtask queue)" (термин v8).
176+
- Обработка промисов всегда асинхронная, т.к. все действия промисов проходят через внутреннюю очередь "promise jobs", так называемая "очередь микрозадач (microtask queue)" (термин v8).
177177

178178
**Таким образом, `.then/catch/finally` вызывается после выполнения текущего кода.**
179179

180180
Если нам нужно гарантировать выполнение части кода после `.then/catch/finally`, то лучше всего добавить его вызов в цепочку `.then`.
181181

182-
- Существует также "очередь макрозадач (macrotask queue)" , которая содержит различные события, результаты сетевых операций, запланированные вызовы `setTimeout` и т.д. Они также называются "макрозадачами" (macrotasks) (термин v8).
182+
- Существует также "очередь макрозадач (macrotask queue)", которая содержит различные события, результаты сетевых операций, запланированные вызовы `setTimeout` и т.д. Они также называются "макрозадачами" (macrotasks) (термин v8).
183183

184184
Движок использует очередь макрозадач для их выполнения в порядке появления.
185185

186-
**Макрозадачи запускаются после выполнения кода *и* после того как очередь микрозадач будет пуста.**
186+
**Макрозадачи запускаются после выполнения кода *и* после того, как очередь микрозадач будет пуста.**
187187

188188
Другими словами, они имеют более низкий приоритет.
189189

190-
Таким образом порядок выполнения следующий: обычный код, потом обработка промисов, потом все остальное, такое как события и т.д.
190+
Таким образом, порядок выполнения следующий: обычный код, потом обработка промисов, потом всё остальное (события и т.д.).

0 commit comments

Comments
 (0)