【Node.js24.x】Array::fromAsync()メソッドの使い方
fromAsyncメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
fromAsyncメソッドは、非同期処理の結果を待って新しいArrayインスタンスを生成するメソッドです。このメソッドは、非同期イテラブル、またはPromiseを解決する要素を含むイテラブルからデータを効率的に収集し、最終的な配列としてまとめます。
引数として、配列に変換したいイテラブルまたは非同期イテラブルオブジェクトを指定します。オプションとして、各要素を加工するためのマッピング関数(mapFn)を渡すことができます。mapFn自体も非同期関数として定義でき、個々の要素に対する非同期的な変換処理を適用することが可能です。
fromAsyncメソッドの戻り値はPromiseであるため、構築された配列を取得するにはawaitキーワードを使用する必要があります。これにより、全ての非同期的な要素の収集と変換が完了し、最終的な配列が完全に準備されるまで待機できます。ファイルI/Oやネットワーク通信など、非同期データソースから得られる情報を扱いやすい配列形式に変換する際に非常に有用で、非同期処理を伴うデータ収集をシンプルに記述するための強力な機能です。
構文(syntax)
1async function* createAsyncIterable() { 2 for (let i = 0; i < 3; i++) { 3 await new Promise(resolve => setTimeout(resolve, 10)); // 非同期処理を模倣 4 yield `value-${i}`; 5 } 6} 7 8// 非同期イテレータからPromiseを返す配列を生成 9const asyncIterable = createAsyncIterable(); 10const arrayFromAsyncPromise = Array.fromAsync(asyncIterable); 11 12arrayFromAsyncPromise.then(resultArray => { 13 console.log(resultArray); // 例: ['value-0', 'value-1', 'value-2'] 14});
引数(parameters)
asyncIterable, mapFn = (x) => x, thisArg
- asyncIterable: 非同期イテラブルオブジェクト。
Array.fromAsyncは、このオブジェクトから要素を順番に取り出し、配列を生成します。 - mapFn: (optional) 各要素に対して実行される関数。デフォルトでは、要素自体をそのまま返します。
- thisArg: (optional)
mapFnが呼び出される際のthisの値。
戻り値(return)
Promise<Array<T>>
Array.fromAsync は、非同期イテレータまたはPromiseの配列を基に、新しいArrayインスタンスを生成する非同期メソッドです。生成されたArrayインスタンスは、指定された非同期処理がすべて完了した後に、その結果を要素として含みます。