我认为一切都在我的标题中,我总是!@#$%^& *在我的代码中坚持使用那种回调链并调用外部库。当然,只要它保持同步,一切都很好,当谈到异步调用时......头痛来了!
我试着做一些明显的简单样品,谢谢。
var B;
(function(cb) {
cb(function(cb){
cb(function(cb){
cb();
});
});
}(function(){
setTimeout(function(){
B = 10;
}, 1);
}));
var C;
(function(cb) {
cb(function(cb){
cb(function(cb){
cb(function(){
cb(function(cb){
cb();
})
});
});
});
}(function(){
C = 10;
}));
var D = function(){
this.E = undefined;
var that = this;
(function(cb){
cb(function(cb){
cb();
});
}(function(){
setTimeout(function(){
that.E = 10;
}, 1);
}));
console.log('this.E : '+this.E);
this.F = undefined;
var that = this;
(function(cb){
cb(function(cb){
cb();
});
}(function(){
that.F = 10;
}));
console.log('this.F : '+this.F);
}
new D();
console.log('B : '+B);
console.log('C : '+C);
结果:
B : undefined
C : 10
E : undefined
F : 20