AsyncFunction() コンストラクター
AsyncFunction()
コンストラクターは AsyncFunction
オブジェクトを生成します。
なお、AsyncFunction
はグローバルオブジェクトではないことに注意してください。これは以下のようなコードで取得することができます。
const AsyncFunction = async function () {}.constructor;
AsyncFunction()
コンストラクターは直接使用することを意図されておらず、 Function()
の説明で述べた注意事項はすべて AsyncFunction()
に適用されます。
構文
new AsyncFunction(functionBody)
new AsyncFunction(arg0, functionBody)
new AsyncFunction(arg0, arg1, functionBody)
new AsyncFunction(arg0, arg1, /* … ,*/ argN, functionBody)
AsyncFunction(functionBody)
AsyncFunction(arg0, functionBody)
AsyncFunction(arg0, arg1, functionBody)
AsyncFunction(arg0, arg1, /* … ,*/ argN, functionBody)
メモ: AsyncFunction()
は new
があってもなくても呼び出すことができます。どちらも新しい AsyncFunction
インスタンスを生成します。
引数
Function()
を参照してください。
例
AsyncFunction() コンストラクターから非同期関数を生成
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
const AsyncFunction = async function () {}.constructor;
const fn = new AsyncFunction(
"a",
"b",
"return await resolveAfter2Seconds(a) + await resolveAfter2Seconds(b);",
);
fn(10, 20).then((v) => {
console.log(v); // prints 30 after 4 seconds
});
仕様書
Specification |
---|
ECMAScript Language Specification # sec-async-function-constructor |
ブラウザーの互換性
BCD tables only load in the browser