使用JavaScript/jQuery的双重或多重回调设计模式

Yah*_*hel 6 javascript jquery design-patterns callback

我有一个回调函数,我想在$.getScript成功加载2个单独的调用后执行.

我正在使用下面的设计,但它感觉很乱,并且使用命名函数感觉非常非jQuery

var foo_ready = false;
var bar_ready = false;
var dual_callback = function(){
    if(foo_ready && bar_ready)
    {
        //do things
    }
};

 jQuery.getScript('/foo.js', function(){
        foo_ready = true;
        dual_callback();
    });
 jQuery.getScript('/bar.js', function(){
        bar_ready = true;
        dual_callback();
    });
Run Code Online (Sandbox Code Playgroud)

在多个异步调用完成后,是否有更好或更优雅的方法来执行单个回调?

Pet*_*dIt 12

如果你有jQuery 1.5.1,你可以这样做:

$.when( $.getScript('/foo.js'), $.getScript('/bar.js') ).done(function(){ 
     // this is called when both are done.
});
Run Code Online (Sandbox Code Playgroud)

查看延迟对象$ .when()