在学js高级程序设计时讲了promise扩展类添加通知功能,在调试时发现构造函数被调用两次,一次在new的时候,一次在p.then。不理解为什么p.then还要执行一次构造函数,希望大家帮忙解惑。
class myPromise extends Promise{
static count = 0
constructor(Fn){
console.log(`被调用次数:${++myPromise.count}`)
super((resolve, reject)=>{
return Fn(resolve,reject);
});
}
}
const p = new myPromise((resolve, reject)=>{})
p.then()
控制台打印:
被调用次数:1
被调用次数:2