异步编程

    1. 是一个拥有 的对象或函数;
    2. 执行成功时调用 then() 的第一个回调函数,失败时调用第二个回调函数;
    3. 实例对象的 then() 必须返回一个新的 Promise 实例;
    4. 解决了多重嵌套的回调函数带来的「回调地狱」;
    5. 没有提供原生的中止 Promise 链的方法。
    1. 内置执行器;
    2. async 函数的返回值是 Promise 实例;
    3. await 后是 Promise 实例或会被转化为 Promise 实例的普通值;
    4. await 只能在 函数中使用。