💡
原文中文,约17300字,阅读约需42分钟。
📝
内容提要
本文介绍了如何实现符合 Promises/A+ 规范的 Promise,包括基本概念、状态、用法、执行器、then 方法、链式调用、异步事件和其他 API。Promise 是一个帮助执行异步任务的对象,让代码更加清晰优雅。
🎯
关键要点
- Promise 是基于 Promises/A+ 规范实现的,帮助执行异步任务。
- Promise 有三种状态:等待状态、成功状态和失败状态,状态不可逆。
- Promise 的基本用法包括创建 Promise 实例和使用 then 方法处理结果。
- Promise 的执行器函数接收 resolve 和 reject 两个参数,用于改变状态。
- then 方法的回调函数 onFulfilled 和 onRejected 只能在相应状态下调用,且不能多次调用。
- then 方法可以多次调用,回调函数按调用顺序执行。
- 链式调用需要 then 方法返回一个新的 Promise 实例。
- Promises/A+ 规范要求 onFulfilled 和 onRejected 在执行上下文堆栈之前不得调用,需使用微任务。
- 实现 Promise 的 API 包括 Promise.resolve、Promise.reject、Promise.all 和 Promise.race 等。
- Promise 通过处理异步任务状态,使代码更加清晰优雅,解决了回调地狱的问题。
➡️