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

【JavaScript ECMAScript】Array::Array.fromAsync静的メソッドの使い方

Array.fromAsync()静的メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Array.fromAsync()メソッドは、Async IterablesやPromiseを含むIterablesなど、非同期処理に対応したデータソースから新しいArrayインスタンスを生成し、Promiseとして返すメソッドです。

このメソッドは、既存のArray.from()メソッドの非同期版として設計されており、非同期で要素を順次提供するオブジェクト(Async Iterables)や、要素自体がPromiseであるようなイテラブルオブジェクトを処理する際に非常に役立ちます。具体的には、ウェブAPIからのストリーミングデータや、データベースから非同期的に取得されるレコードなど、時間とともにデータが供給される非同期ソースのすべての要素を、一つの配列にまとめて変換したい場合に活用されます。

本メソッドを呼び出すと、必ずPromiseが返されます。このPromiseが解決されると、入力された非同期データソースから取得されたすべての要素を含む新しい配列が結果として得られます。そのため、非同期処理の完了を待つために、通常はawaitキーワードと組み合わせて使用されます。

これにより、非同期のデータフローから効率的に配列を生成し、後続の処理で配列として簡単に操作できるようになります。非同期処理を含むシステムを構築する上で、データ変換の柔軟性と簡潔性を提供します。

公式リファレンス: Array.fromAsync()

構文(syntax)

1async function* myAsyncGenerator() {
2  yield Promise.resolve('item1');
3  yield Promise.resolve('item2');
4}
5
6async function processData() {
7  const asyncIterableSource = myAsyncGenerator();
8  const newArray = await Array.fromAsync(asyncIterableSource);
9  // newArray は ['item1', 'item2'] となります
10}
11
12processData();

引数(parameters)

asyncIterable, mapFn, thisArg

  • asyncIterable: 非同期イテラブルオブジェクト。配列に変換したい要素のシーケンスです。
  • mapFn (省略可能): 各要素に対して実行する変換関数。この関数は、Array.fromAsync() によって返される Promise が解決される前に実行されます。
  • thisArg (省略可能): mapFn が呼び出される際の this の値。

戻り値(return)

Promise<Array>

Array.fromAsync() は、指定されたイテラブルまたは配列ライクなオブジェクトから非同期に生成された要素を含む新しい Array インスタンスを解決する Promise を返します。

関連コンテンツ

関連プログラミング言語