简介
阮一峰ES6
ES2017 引入 async 函数,它是 Generator 函数的语法糖。
async函数返回一个 Promise 对象,可以使用then方法添加回调函数。
await命令只能用在async函数之中,如果用在普通函数,就会报错。
正常情况下,await命令后面是一个 Promise 对象,返回该对象的结果。如果不是 Promise 对象,就直接返回对应的值。
await命令后面的Promise对象,运行结果可能是rejected,所以最好把await命令放在try...catch代码块中。
async goStore() {
try {
const { code, data } = await downIos()
if (code == 0) {
window.location.href = data.downloadUrl
}
} catch (error) {}
},
downIos = (params = {}) => {
return service.requestD({
url: '/version/ios/downloadInfo',
method: 'post',
data: params,
});
多个await命令后面的异步操作同时触发
let foo = await getFoo();
let bar = await getBar();
// 写法一
let [foo, bar] = await Promise.all([getFoo(), getBar()]);
// 写法二
let fooPromise = getFoo();
let barPromise = getBar();
let foo = await fooPromise;
let bar = await barPromise;