简介

阮一峰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;
03-05 14:48