es6语法提供了Promise构造函数,可以很方便的进行异步操作。
因此想用es5语法手动实现一个Promise的类,并且实现它的功能。
下面上代码:
function myPromise(callBack) {
"use strict";
var that = this;
var promiseArg; //保存每次回调的参数
var status; //保存状态数据,用于冻结并抛出异常
var account = 0; //记录更改状态的次数
that._status = undefined; //保存promise实例的状态
that.handleEventArray = []; //保存事件列表
that.finallyEvent = undefined; //finally的回调
that.promiseArg = undefined;
//成功、失败回调,更改状态,传入参数
function reslove(arg) {
that._status = true;
that.promiseArg = promiseArg = arg;
account++;
}
function reject(arg) {
that._status = false;
that.promiseArg = promiseArg = arg;
account++;
}
//状态只能更改一次
Object.defineProper