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