上一篇文章 24.Promises/A+ 规范 介绍了Promises/A+ 规范,我们来手动实现一个符合 Promises/A+ 规范的自己的Promise。

根据规范,Promise 共有三种状态 pendingfulfilledrejected,我们使用 state 来表示 promise 当前的状态,使用 value 来表示当前原因。当然还有最重要的 then 方法。同时我们还需要一些辅助函数,比如 isFunction

接着,我们定义两个函数,可以将 promise 转换为 fulfilledrejected

最后,我们还需要一个 resolver,将刚才定义的 doResolvedoReject 暴露给 Promise 的构造函数。想想我们平时是怎么 new 一个 Promise的?

到这里,Promise 最核心的功能已经实现。可以很容易地看出,这里 Promise 的底层实现使用了回调(callback)

原文:大专栏  25.Promise原理及实现


02-01 05:37
查看更多