Async iterators and the for await..of loop
非同期イテレータは Symbol.asyncIterator を実装するオブジェクトで、for await...of ループで反復できます。ストリーム処理やページネーションに有用です。
概要
非同期イテレータは 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 |
基本構文
// for await...of loop
for await (const chunk of readableStream) {
process(chunk);
} ライブデモ
for await...of Basics
Iterate. with Symbol.asyncIterator implementationobject for await...of.
実務での使いどころ
-
Async iterators and the for await..of loop の活用
非同期イテレータと for await...of ループ。非同期データソースの逐次処理に使用。
注意点
- 特になし。すべての主要ブラウザで安定して動作する。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。
参考リンク
Powered by web-features