AsyncFunction() コンストラクター
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.
AsyncFunction()
コンストラクターは AsyncFunction
オブジェクトを生成します。
なお、AsyncFunction
はグローバルオブジェクトではないことに注意してください。これは以下のようなコードで取得することができます。
js
const AsyncFunction = async function () {}.constructor;
AsyncFunction()
コンストラクターは直接使用することを意図されておらず、 Function()
の説明で述べた注意事項はすべて AsyncFunction()
に適用されます。
構文
js
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() コンストラクターから非同期関数を生成
js
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