async函数

async函数的实现原理,就是将Generator函数和自动执行器,包装在一个函数里
async函数返回Promise对象,async函数的return值是then方法的参数,await后跟Promise对象或者数值,字符串,布尔值。
await命令后面的Promise对象,运行结果可能是rejected,所以最好把await命令放在try...catch代码块中。
一、错误捕获

// 用try catch实现
async function demoFn() {
  try {
    await somethingThatReturnsAPromise();
    throw new Error('oneerror');
  } catch (err) {
    console.log(err);
  }
}

// 用Promise的catch()方法实现
async function demoFn() {
  await somethingThatReturnsAPromise()
  .catch(function (err) {
    console.log(err);
  });
}

二、继发和并发操作

// 继发
let foo = await getFoo();
let bar = await getBar();

// 并发
let [foo, bar] = await Promise.all([getFoo(), getBar()]);

三、异步遍历器接口

四、for await of

原文地址:https://www.cnblogs.com/camille666/p/es_async.html