// 判断返回对象
let flag = result && (typeof result === "object" || typeof result ===
"function");
// 判断返回结果
return flag ? result : newObject;
}
// 使⽤⽅法
objectFactory(构造函数, 初始化参数);
复制代码
const PENDING = "pending";
const RESOLVED = "resolved";
const REJECTED = "rejected";
function MyPromise(fn) {
// 保存初始化状态
var self = this;
// 初始化状态
this.state = PENDING;
// ⽤于保存 resolve 或者 rejected 传⼊的值
this.value = null;
// ⽤于保存 resolve 的回调函数
this.resolvedCallbacks = [];
// ⽤于保存 reject 的回调函数
this.rejectedCallbacks = [];
// 状态转变为 resolved ⽅法
function resolve(value) {
// 判断传⼊元素是否为 Promise 值,如果是,则状态改变必须等待前⼀个状态改变后再进⾏
改变
if (value instanceof MyPromise) {
return value.then(resolve, reject);
评论2
最新资源