想要源码的可以看这里,里面也有一些其他的知识
想要手写一个promise,首先就要了解promise,想必大家都被过一些promise的面试题,知道一些promise的用法,主要考的就是一种异步编程的思想。
了解promise
我们先来看看直接输出一个promise对象会是什么,通过代码:
var p = new Promise((resolve,reject)=>{});
console.log(p);

可以看到输出结果Promise大致由它的状态PromiseState,它的值PromiseResult和它原型上面的方法组成。
promise对象有一个函数当作参数,函数里又分别有两个参数,分别是resolve和reject,当调用resolve()时就会运行prototype上的then()方法,当调用reject()时就会运行prototype上的catch()方法,这里的then,catch都是微任务,所谓微任务就是之宏任务运行完之后所运行的任务。就好比去银行办业务,你的要办的业务相当于宏任务,等你办完后银行工作人员会推荐与你业务相关的拓展业务,这个拓展业务就相当于微任务。
promise的状态有三种:等待(pending)、已完成(fulfilled)、已拒绝(re

本文介绍了如何从零开始编写一个Promise,涵盖了从理解Promise的工作原理到实现then、catch方法,以及all和race的简单介绍。通过实例代码解析了Promise状态转换、微任务处理以及链式调用的实现细节。
最低0.47元/天 解锁文章
1363

被折叠的 条评论
为什么被折叠?



