promise的产生用于解决异步地狱回调问题,使代码结构扁平化。
面试官会经常考察对promise的理解。我们手动实现一个promise.
js底层加入异步微任务方法 queueMicroTask();
js异步微任务方法有:
MutationObserve(),queueMicroTask(),process.nextTick();
//定义状态常量
const PENDING="pending";
const FULFILLED="fulfilled";
const REJECTED="rejected":
//自定义promise类
class Mypromise{
status=PENDING;//初始化状态
value=null;//成功的数据
reason=null;//失败信息
fulfilledCallbackList=[];//成功回调
rejectedCallbackList=[];//失败回调
constructor(exec){
try{
ecec(this.resolve,this.reject)
}catch(e){
this.reject(e);
}
}
resolve=(value)=>{
if(this.status===PENDING){