--- 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)
valueObject с двумя свойствами:
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}}