async function expression
async function 关键字用来在表达式中定义异步函数。当然,你也可以用 异步函数语句 来定义。
语法
async function [name]([param1[, param2[, ..., paramN]]]) { statements }
参数
name
此异步函数的名称,可省略。如果省略则这个函数将成为匿名函数。该名称仅可在本函数中使用。
paramN
传入函数的形参名称。
statements
组成函数体的语句。
描述
异步函数表达式与 异步函数语句 非常相似,语法也基本相同。它们之间的主要区别在于异步函数表达式可以省略函数名称来创建一个匿名函数。另外,异步函数表达式还可以用在 IIFE (立即执行函数表达式,Immediately Invoked Function Expression) 中,更多信息见 函数。
示例
function resolveAfter2Seconds(x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
};
// async function expression assigned to a variable
var add1 = async function(x) {
var a = await resolveAfter2Seconds(20);
var b = await resolveAfter2Seconds(30);
return x + a + b;
}
add1(10).then(v => {
console.log(v); // 4 秒后打印 60
});
(async function(x) { // async function expression used as an IIFE
var p_a = resolveAfter2Seconds(20);
var p_b = resolveAfter2Seconds(30);
return x + await p_a + await p_b;
})(10).then(v => {
console.log(v); // 2 秒后打印 60
});
规范
| Specification | Status | Comment |
|---|---|---|
| ECMAScript (ECMA-262) async function | Living Standard | ES2017 中的初始定义 |
参照文档MDN

本文详细介绍了如何使用async function关键字定义异步函数表达式,包括其语法、参数及使用场景,并通过具体示例展示了如何利用异步函数表达式处理异步操作。
7838

被折叠的 条评论
为什么被折叠?



