ES6总结之async函数
Contents
async函数定义
async函数的执行与普通函数一摸一样,只需要执行即可- 调用
async函数返回一个Promise对象。如果里面还有return语句返回值将作为then方法的参数 - 必须等到
await命令后面的Promise对象执行完,才会使得async返回的Promise对象的状态发生改变
async function f() {
return 'hello world';
}
f().then(v => console.log(v))
// "hello world"
await
async表示函数里面有异步操作和Promise类似相当于状态机,await表示紧跟在后面的表达式需要等待结果。
对await后面的Promise进行异常捕获
async function f() {
await Promise.reject('出错了')
.catch(e => console.log(e));
return await Promise.resolve('hello world');
}
async function f() {
try {
await new Promise(function (resolve, reject) {
throw new Error('出错了');
});
} catch(e) {
}
return await('hello world');
}
多异步操作触发
如果多个await命令不存在继发关系,应该让它们同时触发
let [foo, bar] = await Promise.all([getFoo(), getBar()])