Skip to content

Commit

Permalink
Merge pull request #33 from shoonia/patch-2
Browse files Browse the repository at this point in the history
Пропущенный предлог "в"
  • Loading branch information
melikhov-dev committed May 13, 2018
2 parents 41f351e + 9dab3ff commit a5d302f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion async & performance/ch4.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ res = it.next( 7 ); // передаём `7` в ожидающий значен
res.value; // 42
```

**Важно:** Мы не передаём никакого значения в первый вызов `next()`, и на это есть причины. Только поставленный на паузу `yield` может принимать значение, передаваемое вызовом `next(..)`, а в начале работы генератора, когда мы вызываем первый `next()`, **генератор ещё не содержит в себе "замороженного" `yield`**, который мог бы принять значение. Спецификации и все совместимые браузеры просто молча **отбрасывают (игнорируют)** всё, что будет передано в первый вызов `next()`. Поэтому передавать туда значение является не слишком хорошей идеей, так как в этом случае вы создаёте код, который может просто молча "упасть" без каких-либо ошибок, и это может сбивать с толку. По этой причине мы всегда запускаем первый вызов `next()`, не передавая него аргументы.
**Важно:** Мы не передаём никакого значения в первый вызов `next()`, и на это есть причины. Только поставленный на паузу `yield` может принимать значение, передаваемое вызовом `next(..)`, а в начале работы генератора, когда мы вызываем первый `next()`, **генератор ещё не содержит в себе "замороженного" `yield`**, который мог бы принять значение. Спецификации и все совместимые браузеры просто молча **отбрасывают (игнорируют)** всё, что будет передано в первый вызов `next()`. Поэтому передавать туда значение является не слишком хорошей идеей, так как в этом случае вы создаёте код, который может просто молча "упасть" без каких-либо ошибок, и это может сбивать с толку. По этой причине мы всегда запускаем первый вызов `next()`, не передавая в него аргументы.

Первый `next()` (в который ничего не передано) как бы *задаёт вопрос*: "Какое *следующее* значение должен передать мне генератор`*foo(..)`?" И кто же отвечает на этот вопрос? Первое выражение `yield "hello"`.

Expand Down

0 comments on commit a5d302f

Please sign in to comment.