--- title: Generator.prototype.next() slug: Web/JavaScript/Reference/Global_Objects/Generator/next tags: - ECMAScript6 - JavaScript - Reference - генератор - метод - прототип translation_of: Web/JavaScript/Reference/Global_Objects/Generator/next ---
Метод next
()
возвращает объект с двумя свойствами done
и value
. Также вы можете задать параметр для метода next
, чтобы отправить значение в генератор.
gen.next(value)
value
Object
с двумя свойствами:
done
(boolean)
true
, если итератор находится за окончанием итерируемой последовательности. В этом случае value
может указывать возвращаемое значение итератора.false
, если итератор может создать следующее значение в последовательности. Это эквивалентно вообще не указанному свойству done
.value
- любое JavaScript значение, возвращаемое итератором. Может быть опущено, когда done
имеет значение true
.next()
Следующий пример показывает простой генератор и объект, который возвращает метод next
:
function* gen() { yield 1; yield 2; yield 3; } var g = gen(); // "Generator { }" g.next(); // "Object { value: 1, done: false }" g.next(); // "Object { value: 2, done: false }" g.next(); // "Object { value: 3, done: false }" g.next(); // "Object { value: undefined, done: true }"
В этом примере next
вызывается со значением. Отметим, что первый вызов ничего не вывел, потому что генератор изначально ничего не получил.
function* gen() { while(true) { var value = yield null; console.log(value); } } var g = gen(); g.next(1); // "{ value: null, done: false }" g.next(2); // 2 // "{ value: null, done: false }"
{{Compat}}