本篇文章主要针对于promise对象实例的一个解析,
首先来说,我们应当知道Promise基于什么实现,为了解决什么问题而存在的???
Promise本质是一个工厂函数,也可以说是一个构造函数,返回给我们一个Promise对象,主要为了解决我们ES6之前回调地狱的写法优化
promise有哪些状态?对应值有哪些 - pending、fulfilled、rejected
new Promise 执行器executor(),执行器参数是?- resolve、reject
promise的默认状态是?promise状态的流转?- 默认pending,pf,pr
promise,value保存成功状态的枚举?- undefined/thenable/promise
promise,失败状态值?- reason保存失败
描述promise接口
promise一定会有then,then接收来源?
- 两个回调onFulfilled(value) + onRejected(reason)
而后我们使用class关键字去声明一个Promise类,初始化类参数
以上完成之后,我们就是已经初始化好了我们一个promise对象了。接下来我们需要做的事就是给他添加方法,
下面我们来讲最基础的两个方法then和catch方法:
这个时候,我们可以尝试new一下,但是会发现一个问题,我们无法传入一个异步操作,而promise是可以接收异步定时器的,那么下面继续优化,实现这个逻辑
定义两个数组:onResolveCallBacks和onRejectCallBacks用来接受,异步回调参数,同时在resolve和reject中去循环数组,执行传入的方法,等待接收
处理参数,将传入的方法放进回调数组,循环执行,获取异步输出值
以下是基础全套代码
写到目前为止,我们已经可以清晰的看出我们Promise对象的一个实现逻辑了,
下面,我们将要更加深入的使用Promise的一个概念,链式调用!!
Action!!!
首先完成链式调用,我们需要去封装一个方法,叫他resolvePromise好了
最终版本的Promise,出炉了!!
有兴趣的同学可以关注一下作者哦~~~