jquery – 处理延迟对象的数组

前端之家收集整理的这篇文章主要介绍了jquery – 处理延迟对象的数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于使用$.Deferred我已经遇到过几次这样的场景:我有一个值列表,每个值都以某种方式产生一个Deferred Object,并且我想在解析所有Deferred对象后执行回调.

一个更具体的例子是这样的:

var urls = [ 'foo.com','bar.com','baz.com','qux.com' ],defers = [],defer;

for( var i = 0,j = urls.length; i < j; i++ ){
    defer = $.ajax({
        url: 'http://' + urls[ i ]
    });

    defers.push(defer);
}

$.when.apply(window,defers).done(function(){
    // Do Something
});

有没有比我的例子中的代码更优雅的解决方案?

解决方法

是的,你永远不应该在循环中引用查找值.总是复制一份.
var urls = [ 'foo.com',defer;

var urlsLength = urls.length;
for( var i = 0,j = urlsLength; i < j; i++ ){
    defer = $.ajax({
        url: 'http://' + urls[ i ]
    });

    defers.push(defer);
}

$.when.apply(window,defers).done(function(){
    // Do Something
});

但说真的,我只是joshin’你.那段代码摇滚.坚持下去.

原文链接:https://www.f2er.com/jquery/178337.html

猜你在找的jQuery相关文章