这是我的代码:
SLVD.promise = function() {
delete this.data;
delete this.callBack;
delete this.babyPromise;
};
SLVD.promise.prototype.then = function(callBack) {
if(this.data) {
return callBack(this.data);
}
else {
this.callBack = callBack;
this.babyPromise = new SLVD.promise();
return this.babyPromise;
}
};
SLVD.promise.prototype.resolve = function(data) {
if(this.callBack) {
var tPromise = this.callBack(data);
if(this.babyPromise) {
if(!(tPromise instanceof SLVD.promise)) {
this.babyPromise.resolve(tPromise);
}
else if(tPromise.data) {
this.babyPromise.resolve(tPromise.data);
}
else {
tPromise.callBack = this.babyPromise.callBack;
if(this.babyPromise.babyPromise) {
tPromise.babyPromise = this.babyPromise.babyPromise;
}
}
}
}
else {
this.data = data;
}
};
SLVD.promise.as = function(data) {
var promise = new SLVD.promise();
promise.resolve(data);
return promise;
};
这是一个承诺系统。 (是的,我知道那里已经存在承诺系统。请不要因此而烦恼。)但是,当构造函数运行时,成员callBack已经设置为“onThen(value)”。当我尝试在构造函数中删除它时,它仍然如此。有谁知道这个?
其他可能有用的信息:
此图显示我在构造函数中调用delete后在调试器中暂停的代码...
编辑:就此而言,this.babyPromise也是预定义的......(甚至在删除之后)。为什么呢?答案 0 :(得分:0)
正如我在评论中所说,问题结果是Firebug(v 2.0.11)的一些问题。我转而使用Chrome及其调试器,从那时起我就没有遇到过这样的问题。