Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

AsyncIterator

BaselineWidely available

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

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

js
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 ループで使用することができます。

js
const asyncIterator = (async function* () {  yield 1;  yield 2;  yield 3;})();(async () => {  for await (const value of asyncIterator) {    console.log(value);  }})();// ログ: 1, 2, 3

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-asynciteratorprototype

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp