Symbol.asyncIterator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Symbol.asyncIterator
は静的データプロパティで、ウェルノウンシンボルである Symbol.asyncIterator
を表します。非同期反復可能プロトコルは、オブジェクトの非同期反復子を返すメソッドをこのシンボルで探します。オブジェクトが非同期反復可能であるためには、[Symbol.asyncIterator]
キーを持つ必要があります。
試してみましょう
値
ウェルノウンシンボル Symbol.asyncIterator
です。
Symbol.asyncIterator のプロパティ属性 | |
---|---|
書込可能 | 不可 |
列挙可能 | 不可 |
設定可能 | 不可 |
例
ユーザー定義の非同期反復可能項目
オブジェクトに [Symbol.asyncIterator]()
プロパティを設定することで、独自の非同期イテレーターを定義することができます。
const myAsyncIterable = {
async *[Symbol.asyncIterator]() {
yield "hello";
yield "async";
yield "iteration!";
},
};
(async () => {
for await (const x of myAsyncIterable) {
console.log(x);
}
})();
// 期待される出力:
// "hello"
// "async"
// "iteration!"
API を作成するとき、非同期反復可能項目はデータのストリームやリストのような、反復可能なものを表すために設計されたものであり、ほとんどの状況でコールバックやイベントを完全に置き換えるものではないことに注意してください。
組み込みの非同期反復可能オブジェクト
コア JavaScript 言語に非同期反復可能オブジェクトはありません。一部の Web API、例えば ReadableStream
は既定で Symbol.asyncIterator
メソッドが設定されています。
仕様書
Specification |
---|
ECMAScript Language Specification # sec-symbol.asynciterator |
ブラウザーの互換性
BCD tables only load in the browser