【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式の戻り値として渡され、ジェネレーターとの双方向通信を可能にします。
構文(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 オブジェクトに解決されます。