function mypromise(execute) {
const self =this; //保存当前this指向,因为后面的resolve和reject方法中的this指向不是mypromise
self.status="pending";
self.value="undefined";
self.reason="undefined"; //先定义三个状态
function resolve(value) {
if(self.status==="pending"){
self.value=value;
self.status="resolve"
}
} 在mypromise里面定义resolve方法
function reject(reason) {
if(self.status==="pending"){
self.reason=reason;
self.status="rejected"
}
} 定义reject方法
try{
execute(resolve,reject)
}
catch(e){
reject(e)
}