SOURCE

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)
console 命令行工具 X clear

                    
>
console