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

时间:2011-03-05 03:44:07

标签: javascript jquery design-patterns callback

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

我正在使用下面的设计,但它感觉很乱,并且使用命名函数感觉非常非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();
    });

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

1 个答案:

答案 0 :(得分:12)

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

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

查看Deferred Object$.when()