异步函数表达式

基线 广泛可用

此功能已得到很好的建立,可在许多设备和浏览器版本中使用。从那时起,它就可以跨浏览器使用了 2017年4月.

这个异步函数关键字可用于定义表达式内的异步函数。

还可以使用异步函数宣言箭头语法.

语法

js公司
异步函数(param0){声明}异步函数(param0,param1){声明}异步函数(param0,param1,/*…,*/paramN){声明}异步函数名(param0){声明}异步函数名(param0,param1){声明}异步函数名称(param0,param1,/*…,*/paramN){声明}

注:表达式语句不能以关键字开头异步函数以避免与异步函数宣言. The异步函数关键字仅在出现在无法接受语句的上下文中时才开始表达式。

参数

名称 可选

函数名称。可以省略,在这种情况下,函数是匿名的。该名称仅限于函数体。

参数N 可选

函数的形式参数的名称。有关参数的语法,请参见函数参考.

声明 可选

构成函数体的语句。

描述

异步函数表达式与异步函数宣言. The main difference between an异步函数表达式和异步函数声明是函数名称,在中可以省略异步函数要创建的表达式匿名的功能。异步函数表达式可以用作IIFE公司(立即调用函数表达式),定义后立即运行,允许您模拟顶层等待。另请参阅关于功能了解更多信息。

示例

使用异步函数表达式

js公司
函数resolveAfter2Seconds(x){return new Promise((resolve)=>{设置超时(()=>{解决(x);}, 2000);});}//分配给变量的异步函数表达式const add=异步函数(x){const a=等待resolveAfter2Seconds(20);const b=等待2秒后解决(30);返回x+a+b;};加上(10),然后(v)=>{控制台.log(v);//4秒后打印60。});//用作IIFE的异步函数表达式(异步函数(x){const p1=2秒后解决(20);const p2=解析2秒后(30);返回x+(等待p1)+(等待p2);})(10) 然后(v)=>{控制台.log(v);//2秒后打印60。});

规格

规范
ECMAScript语言规范
#秒同步功能定义

浏览器兼容性

BCD表仅在浏览器中加载

另请参见