手写系列-这一次,彻底搞懂 Promise

手写系列-这一次,彻底搞懂 Promise

💡 原文中文,约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 通过处理异步任务状态,使代码更加清晰优雅,解决了回调地狱的问题。
➡️

继续阅读