Widely available すべての主要ブラウザで対応済み。安心して使用可能。

概要

非同期イテレータは Symbol.asyncIterator を実装するオブジェクトで、for await...of ループで反復できます。ストリーム処理やページネーションに有用です。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
63
79
57
11.1
63
11.3

[Symbol.asyncIterator]() は AsyncIterator インスタンスのメソッドで、非同期反復可能プロトコルを実装し、組み込みの非同期イテレーターを、 for await...of ループのような非同期反復可能オブジェクトを期待するほとんどの構文で利用できるようにします。これは this の値を返しますが、これは非同期イテレーターオブジェクトそのものです。

63
79
57
11.1
63
11.3

Symbol.asyncIterator は静的データプロパティで、ウェルノウンシンボルの Symbol.asyncIterator を表します。非同期反復可能プロトコルは、オブジェクトの非同期反復子を返すメソッドをこのシンボルで探します。オブジェクトが非同期反復可能であるためには、[Symbol.asyncIterator] キーを持つ必要があります。

63
79
57
11.1
63
11.3
その他

for await...of 文は、非同期反復可能オブジェクトを、同期反復可能オブジェクトと同様に反復処理するループを作成します。この文は await が使用できるコンテキスト、例えば非同期関数の本体やモジュール内などでのみ使用できます。

63
79
57
12
63
12
ステートメント
async iterators

非同期イテレータ

63
12
57
7
63
7
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

JAVASCRIPT
// for await...of loop
for await (const chunk of readableStream) {
  process(chunk);
}

ライブデモ

for await...of Basics

Iterate. with Symbol.asyncIterator implementationobject for await...of.

プレビュー全画面表示

Array. Promise Sequentialprocessing

sequential. with Promise Array for await...of.

プレビュー全画面表示

Normal iterator and. Comparison

Symbol.iterator and Symbol.asyncIterator. Compare usage.

プレビュー全画面表示

実務での使いどころ

  • Async iterators and the for await..of loop の活用

    非同期イテレータと for await...of ループ。非同期データソースの逐次処理に使用。

注意点

  • 特になし。すべての主要ブラウザで安定して動作する。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。

Powered by web-features