A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator below:

AsyncIterator - JavaScript | MDN

AsyncIterator

Baseline Widely available

AsyncIterator オブジェクトは 非同期イテレータープロトコル に準拠したオブジェクトで、 next() メソッドを提供することでイテレーターの結果オブジェクトに履行されるプロミスを返します。 AsyncIterator.prototype オブジェクトは、すべての組み込み非同期イテレーターが継承する非表示のグローバルオブジェクトです。これは、非同期イテレーターオブジェクト自身を返す @@asyncIterator メソッドを提供し、非同期イテレーターを非同期反復可能にもします。

なお、AsyncIterator はグローバルオブジェクトではありませんが、将来的には async iterator helpers proposal でグローバルオブジェクトになる予定です。すべての組み込み非同期イテレーターで共有される AsyncIterator.prototype オブジェクトは以下のコードで取得できます。

const AsyncIteratorPrototype = Object.getPrototypeOf(
  Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())),
);
解説

現在、 JavaScript の組み込み非同期イテレーターは、非同期ジェネレーター関数が返す AsyncGenerator オブジェクトだけです。ウェブ API には他にも ReadableStream のような組み込みの非同期イテレーターがあります。

これらの非同期イテレーターはそれぞれ個別のプロトタイプオブジェクトを持っており、特定の非同期イテレーターが使用する next() メソッドを定義しています。これらのプロトタイプオブジェクトはすべて AsyncIterator.prototype を継承しています。これは非同期イテレータオブジェクト自身を返す @@asyncIterator メソッドを提供し、非同期イテレーターを非同期反復可能にもします。

メモ: AsyncIterator.prototype は @@iterator を実装していないので、非同期イテレーターは既定では同期反復可能ではありません。

インスタンスメソッド
AsyncIterator.prototype[Symbol.asyncIterator]()

非同期イテレーターオブジェクト自身を返します。これにより、非同期イテレーターオブジェクトも非同期反復可能オブジェクトになります。

例 非同期イテレーターを非同期反復可能として使用

すべての組み込み非同期イテレーターも非同期反復処理可能オブジェクトなので、for await...of ループで使用することができます。

const asyncIterator = (async function* () {
  yield 1;
  yield 2;
  yield 3;
})();
(async () => {
  for await (const value of asyncIterator) {
    console.log(value);
  }
})();
// ログ: 1, 2, 3
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4