看到好多次面试题有要求实现一个promise了,打算实现以下,理清思路,一步一步实现,其实也不难。
定义promise内部三个状态
1 | const PENDING = 'pending';//进行中 |
定义promise主函数
1 | function Promise(executor){ |
实现promise相关API
then()
1 | //onFulfilled 是用来接收promise成功的值或者失败的原因 |
resolve()
1 | Promise.resolve = function(value){ |
reject()
1 | //返回一个立刻失败的promise |
all()
1 | Promise.all = function(promises){ |
catch()
1 | //catch原理就是只传失败的回调 |
finally()
1 | Promise.prototype.finally = function (callback) { |
参考资料
[1] https://juejin.im/entry/597ddade5188257f98295191
[2] https://juejin.im/post/5c763869e51d4569013c11f5#heading-5