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)
备注:
无论是否使用 new
调用 AsyncFunction()
,都可以创建一个新的 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); // 4 秒过后,输出 30
});
规范
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-async-function-constructor> |
浏览器兼容性
Loading…