简介

阮一峰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;