知识拓展
async function
用来定义一个返回AsyncFunction
对象的异步函数。异步函数是指通过事件循环异步执行的函数,它会通过一个隐式的Promise
返回其结果。
语法
async function name([param[, param[, ... param]]]) { statements }
参数
name
函数名称。
param
要传递给函数的参数。
statements
函数体语句。
返回值
返回的Promise
对象会运行执行(resolve
)异步函数的返回结果,或者运行拒绝(reject
)——如果异步函数抛出异常的话。
示例
async function fn(){ //表示异步,这个函数里面有异步任务
let result = await xxx //表示后面结果需要等待数据读取完后执行
}
async特点
await
只能放到async
函数中- 相比
genrator
语义化更强 await
后面可以是promise
对象,也可以是数字、字符串、布尔async
函数返回的是一个promise
对象- 只要
await
语句后面Promise
状态变成reject
, 那么整个async
函数会中断执行
示例代码
你可以通过下面这段代码来体会一下
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
async function asyncCall() {
console.log('calling');
var result = await resolveAfter2Seconds();
console.log(result);
// expected output: 'resolved'
}
asyncCall();