如何使此回调异步/同步链示例正常工作?

时间:2014-06-23 18:02:34

标签: javascript node.js asynchronous callback synchronous

我认为一切都在我的标题中,我总是!@#$%^& *在我的代码中坚持使用那种回调链并调用外部库。当然,只要它保持同步,一切都很好,当谈到异步调用时......头痛来了!

我试着做一些明显的简单样品,谢谢。

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

0 个答案:

没有答案