Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】AsyncGenerator::AsyncGenerator.prototype.nextインスタンスメソッドの使い方

AsyncGenerator.prototype.next()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

AsyncGenerator.prototype.next()メソッドは、非同期ジェネレーターの次の値を取得するために使用されるメソッドです。このメソッドを呼び出すと、非同期ジェネレーターの実行が再開され、次にyieldキーワードに到達するまで、またはジェネレーター関数が終了するまで処理が進みます。

next()メソッドは必ずPromiseを返します。このPromiseは、ジェネレーターが次の値をyieldしたとき、またはジェネレーターが完了したときに解決されます。解決されたPromiseは、{ value: T, done: boolean }形式のオブジェクトを返します。valueプロパティにはジェネレーターからyieldされた値が格納され、doneプロパティはジェネレーターのすべての値が生成され、完了したかどうかを示す真偽値です。

例えば、大量のデータを非同期的に処理したり、ストリームからデータを読み込んだりする際に、ジェネレーターから一つずつ非同期的に値を取り出すのに利用されます。開発者が直接このメソッドを呼び出すこともありますが、for await...ofループを使用する際には、このnext()メソッドが内部で自動的に呼び出され、非同期ジェネレーターの要素を順番に処理します。また、next()メソッドはオプションで引数を受け取ることができ、その引数はジェネレーター内の対応するyield式の戻り値として渡され、ジェネレーターとの双方向通信を可能にします。

公式リファレンス: AsyncGenerator.prototype.next()

構文(syntax)

1async function* exampleAsyncGenerator() {
2  yield 1;
3}
4
5const generatorObject = exampleAsyncGenerator();
6
7generatorObject.next();

引数(parameters)

value

  • value: any: next() メソッドに渡される値。これは、AsyncGenerator の実行が一時停止した await 式で返される値となります。

戻り値(return)

Promise<IteratorResult<any, any>>

AsyncGenerator.prototype.next() メソッドは、非同期ジェネレータの実行を1ステップ進め、その結果を Promise でラップして返します。この Promise は、ジェネレータの次の値(value)と完了状態(done)を含む IteratorResult オブジェクトに解決されます。

関連コンテンツ