静态办法
在实例化创建Promise时,我们会将构造函数的两个静态办法:resolve和reject传入初始函数,接下来须要实现这两个函数:
构造器
- var resolve = (val) => {
- if (tasks) {
- value = ref(val);
- state = 'resolved'; // 将状况标记为已完成
- // 依次履行义务回调
- tasks.forEach((task) => {
- value = nextTick((val) => {task[0](self.value);});
- });
- tasks = undefined; // 决定后状况弗成变
- return this;
- }
- };
- var reject = (reason) => {
- if (tasks) {
- value = ref(reason);
- state = 'rejected'; // 将状况标记为已完成
- // 依次履行义务回调
- tasks.forEach((task) => {
- nextTick((reason) => {task[1](value);});
- });
- tasks = undefined; // 决定后状况弗成变
- return this;
- }
- };
还有别的两个静态办法,道理照样一样,就不细说了。
实例办法
最后输出:second success,初始化promise作为主体调用第一个then办法,返回完成状况的新promise其最终值为second success,然后该新promise作为主体调用第二个then办法,该办法返回第三个promise,并且该promise最终值为undefined,若不清跋扈为什么,请回到关于Promise.prototype.then和Promise.prototype.catch的介绍。
今朝构造函数,和静态办法完成和拒绝Promise都已经实现,接下来须要推敲的是Promise的实例办法和链式调用:

网友点评
精彩导读
科技快报
品牌展示