AsyncGeneratorFunction() コンストラクター

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

関連情報