简介
阮一峰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;
发表回复