首先要确定Promise的几个特点
Promise就是一个类,在执行这个类的时候需要传递一个执行器进去,执行器会立即执行
Promise有三个状态,分别为 成功 fulfilled 失败 rejected 等待pending (pending=>fulfilled pending=>rejected) 一旦状态确定就不可更改
resolve 和reject函数是用来更改状态的 resolve:fulfilled,reject:rejected
then方法内部做的事情就是判断状态,如果状态是成功,就调用成功回调,如果是失败就调用失败回调,then方法被定义在原型对象里
then成功回调有一个返回值,表示调用成功之后的值,失败回调也有一个返回值,表示失败的原因
同一个promise下的then可以调用多次的
then方法是可以被链式调用的,后面then方法的回调函数拿到的值是上一个then方法的回调函数的返回值
以上就是Promise的主要部分,下面我们就根据这些特点来实现我们自己的promise
首先定义出一个类,和三个常量状态(方便复用)和类里的一些常用状态
const PENDING = 'pending';//等待
const FUFILLED = 'fufilled';//成功
const REJECTED = 'rejected';//失败
class MyPromise{
constructor(executor){
try{
executor(thi