乐趣区

asyncawait详解

1、简介

  • 需先了解 Promise【链接地址】
  • JavaScript 中的 异步函数方法
  • JavaScript 在很短的时间内从回调演变为 Promises,从 ES2017(ES8) 开始,使用 async/await 语法让异步 JavaScript 变得更简单。
  • async(异步) 函数是 promises 和 generator 的组合,基本上,它们是对 promises 的更高级别的抽象。
    注意:async/await 基于 promises。

2、引入 async/await 的原因

  • 它们降低了 promises 对一些固定语法样板的要求,打破了链式 promise“不能切断链式”的限制。
  • 在 ES2015 中引入 Promise 时,它们旨在解决异步代码的问题,并且他们确实做到了,但在 ES2015 和 ES2017 的两年中,人们发现很明显 promises 不是最终的解决方案。
  • 引入 Promises 来解决著名的回调地狱问题,但是因为他们自身的复杂性,引入了更复杂的语法。
  • 它们是良好的原语,可以向开发人员公开更好的语法,所以当时机成熟时,我们就有了 异步函数(async functions)。
  • 它们使代码看起来像是同步,但它在后台是异步和非阻塞的。

2、原理

  • async(异步) 函数返回一个 promise,如下例 1 所示:
            const doSomethingAsync = () => {return new Promise((resolve) => {setTimeout(() => resolve('I did something'), 3000)
                })
            }


3、未写完,待续

退出移动版