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

【JavaScript ECMAScript】async function* expression演算子の使い方

async function* expression演算子の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

async function* expression関数は、非同期処理とジェネレーター関数の両方の機能を併せ持つ無名関数を定義するための式です。この関数は、非同期イテレーターを生成し、非同期のデータを効率的かつ順序立てて処理することを可能にします。

asyncキーワードにより、この関数は非同期コンテキストで動作し、Promiseを返す処理を待機するawaitキーワードを使用できます。これにより、ネットワーク通信やファイルI/Oのような時間のかかる処理が完了するまで、他の処理をブロックすることなく実行を進めることができます。

一方、function*キーワードは、この関数をジェネレーター関数として定義します。ジェネレーター関数は、yieldキーワードを用いて関数の実行を一時停止し、必要なときに再開できる特性を持ちます。これにより、メモリ効率良くデータを逐次生成し、反復処理を行うことができます。

async function* expressionは、これらの特性を組み合わせることで、例えば、Web APIからページングされたデータを順次取得し、それを一つずつ処理するようなシナリオで非常に強力なツールとなります。yieldされた値がPromiseである場合、そのPromiseが解決されるのを自動的に待機してから次の処理に進むため、非同期データストリームの取り扱いが格段に簡潔になります。この式で定義された関数は、通常、変数に代入されて利用されます。

公式リファレンス: async function* expression

構文(syntax)

1async function* (param1, param2) {
2  // statements
3}

引数(parameters)

引数なし

引数はありません

戻り値(return)

AsyncGenerator

async function* expression は、非同期ジェネレーターオブジェクトを返します。このオブジェクトは、async/await を用いて非同期処理を生成・消費するために使用されます。

関連コンテンツ

関連プログラミング言語