この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。
概要
done
とvalue
の2つのプロパティを持ったオブジェクトを返します。 ジェネレータに値を送るためにnext
メソッドに引数が提供されております。
構文
gen.next(value)
引数
value
- ジェネレータに送る値
戻り値
2つのプロパティを持ったオブジェクト
:
done
(boolean)- イテレータが反復配列の末端を過ぎていたら、
true
値になります。この場合に、value
は任意の方法でイテレータのreturn 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); // "{ value: null, done: false }" // 2
仕様
仕様 | 状況 | コメント |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Generator.prototype.next' in that specification. |
Standard | Initial definition. |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | ? | 26 (26) | ? | ? | ? |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | ? | ? | 26.0 (26) | ? | ? | ? |