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、未写完,待续
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。