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

View in English Always switch to English

AsyncFunction() コンストラクター

Baseline Widely available

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

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

なお、AsyncFunction はグローバルオブジェクトではないことに注意してください。これは以下のようなコードで取得することができます。

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

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

構文

js
new AsyncFunction(functionBody)
new AsyncFunction(arg1, functionBody)
new AsyncFunction(arg1, arg2, functionBody)
new AsyncFunction(arg1, arg2, /* …, */ argN, functionBody)

AsyncFunction(functionBody)
AsyncFunction(arg1, functionBody)
AsyncFunction(arg1, arg2, functionBody)
AsyncFunction(arg1, arg2, /* …, */ 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® 2026 Language Specification
# sec-async-function-constructor

ブラウザーの互換性

関連情報