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

View in English Always switch to English

AsyncGeneratorFunction

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2020年1月⁩.

AsyncGeneratorFunction オブジェクトは、非同期ジェネレーター関数のメソッドを提供します。 JavaScript では、すべての非同期ジェネレータ関数は実際には AsyncGeneratorFunction オブジェクトです。

なお、AsyncGeneratorFunction はグローバルオブジェクトではありません。以下のコードで取得できます。

js
const AsyncGeneratorFunction = async function* () {}.constructor;

AsyncGeneratorFunctionFunction のサブクラスです。

試してみましょう

const AsyncGeneratorFunction = async function* () {}.constructor;

const foo = new AsyncGeneratorFunction(`
  yield await Promise.resolve('a');
  yield await Promise.resolve('b');
  yield await Promise.resolve('c');
`);

let str = "";

async function generate() {
  for await (const val of foo()) {
    str += val;
  }
  console.log(str);
}

generate();
// 予想される結果: "abc"

コンストラクター

AsyncGeneratorFunction()

新しい AsyncGeneratorFunction オブジェクトを生成します。

インスタンスプロパティ

親である Function から継承したインスタンスプロパティもあります

これらのプロパティは AsyncGeneratorFunction.prototype で定義されており、すべての AsyncGeneratorFunction インスタンスで共有されます。

AsyncGeneratorFunction.prototype.constructor

このインスタンスオブジェクトを生成したコンストラクター関数です。 AsyncGeneratorFunction インスタンスにおいては、初期値は AsyncGeneratorFunction コンストラクターです。

AsyncGeneratorFunction.prototype.prototype

すべての非同期ジェネレータ関数は同じ prototype プロパティを共有していて、それは AsyncGenerator.prototype です。 async function* 構文または AsyncGeneratorFunction() コンストラクターで生成されるそれぞれの非同期ジェネレーター関数も、自身の prototype プロパティを保持します。このプロパティのプロトタイプは AsyncGeneratorFunction.prototype.prototype です。非同期ジェネレーター関数が呼び出されると、その prototype プロパティは返される非同期ジェネレーターオブジェクトのプロトタイプとなります。

AsyncGeneratorFunction.prototype[Symbol.toStringTag]

[Symbol.toStringTag] プロパティの初期値は文字列 "AsyncGeneratorFunction" です。このプロパティは Object.prototype.toString() で使用します。

以下のプロパティは、それぞれの AsyncGeneratorFunction インスタンスが自身で持つプロパティです。

prototype

関数が new 演算子と共にコンストラクターとして使用される場合に使用されます。新しいオブジェクトのプロトタイプとなります。

インスタンスメソッド

親である Function からインスタンスメソッドを継承しています

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-asyncgeneratorfunction-objects

ブラウザーの互換性

関連情報