<p><strong>Ответ: <code>['a', 'b', 'c']</code> и <code>a</code>.</strong></p>
<p dir="auto">Используя ключевое слово <code>yield</code>, мы получаем значения в функции генератора. С помощью ключевого слова <code>yield*</code> мы можем получить значения из другой функции-генератора или итерируемого объекта (например, массива).</p>
<p dir="auto">В <code>generatorOne</code> мы получаем весь массив <code>['a', 'b', 'c']</code>, используя ключевое слово <code>yield</code>. Значение свойства <code>value</code> для объекта, возвращаемого методом <code>next</code> для <code>one</code> (<code>one.next().value</code>), равно всему массиву <code>['a', 'b', 'c']</code>.</p>
<pre class="language-javascript"><code>console.log(one.next().value) // ['a', 'b', 'c']
console.log(one.next().value) // undefined</code></pre>
<p dir="auto">В файле <code>generatorTwo</code> мы используем ключевое слово <code>yield*</code>. Это означает, что первое полученное значение <code>two</code> равно первому полученному значению в итераторе. Итератор - это массив <code>['a', 'b', 'c']</code>. Первым полученным значением является <code>a</code>, поэтому в первый раз, когда мы вызываем <code>two.next().value</code>, возвращается <code>a</code>.</p>
<pre class="language-javascript"><code>console.log(two.next().value) // 'a'
console.log(two.next().value) // 'b'
console.log(two.next().value) // 'c'
console.log(two.next().value) // undefined</code></pre>
<p><strong>Ответ: <code>['a', 'b', 'c']</code> и <code>a</code>.</strong></p>
<p dir="auto">Используя ключевое слово <code>yield</code>, мы получаем значения в функции генератора. С помощью ключевого слова <code>yield*</code> мы можем получить значения из другой функции-генератора или итерируемого объекта (например, массива).</p>
<p dir="auto">В <code>generatorOne</code> мы получаем весь массив <code>['a', 'b', 'c']</code>, используя ключевое слово <code>yield</code>. Значение свойства <code>value</code> для объекта, возвращаемого методом <code>next</code> для <code>one</code> (<code>one.next().value</code>), равно всему массиву <code>['a', 'b', 'c']</code>.</p>
<pre class="language-javascript"><code>console.log(one.next().value) // ['a', 'b', 'c']
console.log(one.next().value) // undefined</code></pre>
<p dir="auto">В файле <code>generatorTwo</code> мы используем ключевое слово <code>yield*</code>. Это означает, что первое полученное значение <code>two</code> равно первому полученному значению в итераторе. Итератор - это массив <code>['a', 'b', 'c']</code>. Первым полученным значением является <code>a</code>, поэтому в первый раз, когда мы вызываем <code>two.next().value</code>, возвращается <code>a</code>.</p>
<pre class="language-javascript"><code>console.log(two.next().value) // 'a'
console.log(two.next().value) // 'b'
console.log(two.next().value) // 'c'
console.log(two.next().value) // undefined</code></pre>
Ниже представлено пояснение.
Ответ: ['a', 'b', 'c']
и a
.
Используя ключевое слово yield
, мы получаем значения в функции генератора. С помощью ключевого слова yield*
мы можем получить значения из другой функции-генератора или итерируемого объекта (например, массива).
В generatorOne
мы получаем весь массив ['a', 'b', 'c']
, используя ключевое слово yield
. Значение свойства value
для объекта, возвращаемого методом next
для one
(one.next().value
), равно всему массиву ['a', 'b', 'c']
.
console.log(one.next().value) // ['a', 'b', 'c']
console.log(one.next().value) // undefined
В файле generatorTwo
мы используем ключевое слово yield*
. Это означает, что первое полученное значение two
равно первому полученному значению в итераторе. Итератор - это массив ['a', 'b', 'c']
. Первым полученным значением является a
, поэтому в первый раз, когда мы вызываем two.next().value
, возвращается a
.
console.log(two.next().value) // 'a'
console.log(two.next().value) // 'b'
console.log(two.next().value) // 'c'
console.log(two.next().value) // undefined