手搓promise

79 阅读1分钟

第一次掘金写文章~~~~太久没写博文了语言组织可能不大行 见谅嗷

promise雏形

不知道有没有人跟我一样,看到这个promise的使用发觉这不就是个发布订阅模式吗,then的成功和失败回调函数分别注册订阅成为之后resolve和reject调用发布时需要调用的函数 那么最简雏形应该是

class Promise2 {

constructor(func) {

this.resSubs = [];

this.rejSubs = [];

let resolve = data => {

this.data = data;

this.resSubs.forEach(item => {

item(this.data);

});

};

let reject = data => {

this.data = data;

this.rejSubs.forEach(item => {

item(this.data);

});

};

func(resolve, reject);

}

then(f1, f2) {
 this.resSubs.push(f1)
 this.rejSubs.push(f2)
}

}


待续