P = function(cb) {
if(!this.status){
this.status = 'pending';
}
setTimeout(()=>{
cb(resolve.bind(this), reject.bind(this))
})
function resolve() {
this.status = 'resolved'
}
function reject() {
this.status = 'reject'
}
}
P.prototype.then = function(cb) {
return new P(cb)
}
p = new P((a) => {
a()
}).then((resolve,reject)=>{
reject()
});
console.log(p)