Generator.prototype.next()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since ÑенÑÑбÑÑ 2016 г..
ÐеÑод next() возвÑаÑÐ°ÐµÑ Ð¾Ð±ÑÐµÐºÑ Ñ Ð´Ð²ÑÐ¼Ñ ÑвойÑÑвами done и value. Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð¿Ð°ÑамеÑÑ Ð´Ð»Ñ Ð¼ÐµÑода next, ÑÑÐ¾Ð±Ñ Ð¾ÑпÑавиÑÑ Ð·Ð½Ð°Ñение в генеÑаÑоÑ.
СинÑакÑиÑ
gen.next(value)
ÐаÑамеÑÑÑ
value-
ÐнаÑение, оÑпÑавлÑемое в генеÑаÑоÑ. ÐнаÑение бÑÐ´ÐµÑ ÑÑÑановлено в виде ÑезÑлÑÑаÑа вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ yield, Ñ. е. в [пеÑеменнаÑ] = yield [вÑÑажение] знаÑение, коÑоÑое бÑло пеÑедано в ÑÑнкÑÐ¸Ñ .next бÑÐ´ÐµÑ Ð¿ÑиÑвоено [пеÑеменной].
ÐозвÑаÑаемое знаÑение
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 }"
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-generator.prototype.next > |