【JSリファレンス】%GeneratorPrototype%.next()
更新日:2024/06/14
%GeneratorPrototype%.next()は、%GeneratorPrototype%オブジェクトのメソッドです。
このメソッドは、Generatorオブジェクトにイテレーターとしての機能を提供する、Iteratorインターフェースの一部です。
メソッドを実行するとジェネレーター関数内の次の yieldキーワードまで処理が進み、yieldキーワードの右辺値をIteratorResultインターフェースを実装したオブジェクトで受け取ります。
最後のyieldまで値を取得した、または%GeneratorPrototype%.return()および%GeneratorPrototype%.throw()の呼び出し後にnext()を呼び出すと、doneプロパティの値がtrueのオブジェクトを返します。
■構文
%GeneratorPrototype%.next( value )
- value: 前回のyieldキーワードの戻り値として渡す値
■使用例
const g = function*(){
let r;
r = yield 1;
console.log( `yieldの戻り値:${r}` );
r = yield 2;
console.log( `yieldの戻り値:${r}` );
r = yield 3;
console.log( `yieldの戻り値:${r}` );
}
const g2 = g();
console.log( g2.next(10) );
console.log( g2.next(20) );
console.log( g2.next(30) );
console.log( g2.next(40) );
// 結果:
// { value: 1, done: false }
// yieldの戻り値:20
// { value: 2, done: false }
// yieldの戻り値:30
// { value: 3, done: false }
// yieldの戻り値:40
// { value: undefined, done: true }
更新日:2024/06/14
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。