AsyncGeneratorFunction() コンストラクター

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.

AsyncGeneratorFunction() コンストラクターは AsyncGeneratorFunction オブジェクトを生成します。

なお、 AsyncGeneratorFunction はグローバルオブジェクトではありません。 以下のコードを評価することで得られます。

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

AsyncGeneratorFunction() コンストラクターは直接使用することを意図しておらず、Function() の説明で述べた注意事項はすべて AsyncGeneratorFunction() にも当てはまります。

構文

js
new AsyncGeneratorFunction(functionBody)
new AsyncGeneratorFunction(arg0, functionBody)
new AsyncGeneratorFunction(arg0, arg1, functionBody)
new AsyncGeneratorFunction(arg0, arg1, /* …, */ argN, functionBody)

AsyncGeneratorFunction(functionBody)
AsyncGeneratorFunction(arg0, functionBody)
AsyncGeneratorFunction(arg0, arg1, functionBody)
AsyncGeneratorFunction(arg0, arg1, /* …, */ argN, functionBody)

メモ: AsyncGeneratorFunction()new があってもなくても呼び出すことができます。どちらも新しい AsyncGeneratorFunction インスタンスを生成します。

引数

Function() を参照してください。

コンストラクターの使用

次の例では、AsyncGeneratorFunction コンストラクターを使用して非同期ジェネレータ関数を作成します。

js
const AsyncGeneratorFunction = async function* () {}.constructor;
const createAsyncGenerator = new AsyncGeneratorFunction("a", "yield a * 2");
const asyncGen = createAsyncGenerator(10);
asyncGen.next().then((res) => console.log(res.value)); // 20

仕様書

Specification
ECMAScript Language Specification
# sec-asyncgeneratorfunction-constructor

ブラウザーの互換性

BCD tables only load in the browser

関連情報