···
function Promise(executor) {
var _this = this;
this.state = 'pending'; //状态
this.value = undefined; //成功结果
this.reason = undefined; //失败原因
this.onFulfilledFunc = [];//保存成功回调
this.onRejectedFunc = [];//保存失败回调
executor(resolve, reject); //马上执行
function resolve(value) {
console.log(value)
if (_this.state === 'pending') {
_this.value = value;//保存成功结果
_this.onFulfilledFunc.forEach(fn => fn(value));
_this.state = 'resolved';
}
}
function reject(reason) {
if (_this.state === 'pending') {
_this.reason = reason;//保存失败结果
_this.onRejectedFunc.forEach(fn => fn(reason));
_this.state = 'rejected';
}
}
}
···