2014-10-16 56 views
0

我要链接getJSON请求.when

代码类似于此:

$.when($.getJSON(url0),$.getJSON(url1), $.getJSON(url2)).done(function() { 
    $.each(arguments, function(index, result) { … 

我怎么可以这样写,所以如果该URL集包含URL3或URL4以上或仅URL0它可以继续吗?

我将url变量存储在文件或本地存储中。

+0

你可以创建一个数组,并且你可以在$ .When – 2014-10-16 17:00:50

+0

中处理该数组值。谢谢。例? – user1452893 2014-10-16 17:02:22

+0

好的等待让我回答 – 2014-10-16 17:12:51

回答

2
var list = ['obj1', 'obj2', 'obj3', 'obj4', 'obj5']; 
    var callback = function() { 
    console.log("done"); 
    }; 
    var requests = []; 

    for(i = 0; i < list.length; i++) { 
     requests.push($.ajax({ 
     url: 'url', 
     success: function() { 
      console.log('suc'); 
     } 
     })); 
    } 

    $.when.apply(undefined, requests).then(function(results){callback()}); 

你可以给我一些更多的细节,所以我可以加载在阵列可以告诉你它是如何工作

的jsfiddle DEMO:http://jsfiddle.net/MBZEu/4/

,或者你可以尝试

var urlArr = ['url1', 'url2', 'url3', 'url4', 'url5']; 
    var callback = function() { 
    console.log("done"); 
    }; 
    var requests = []; 

    for(i = 0; i < urlArr.length; i++) { 
     requests.push($.getJSON(urlArr[i])); //or something similar which can push url in array 
    } 

    $.when.apply(undefined, requests).then(function(results){callback()}); 

或使用此查看最新消息请求

requests.push($.getJSON(urlArr[i], function(res){console.log(res)})); 
+0

谢谢,会试试这个。我在本地存储中存储了一个用于构建实际URL的值。像这样工作:[JSON.parse(window.localStorage.getItem('item:1'))。url]。 – user1452893 2014-10-16 17:21:29

+0

啧啧,为什么在这个世界上,有人甚至在尝试之前就会低估它呢? – user1452893 2014-10-16 17:23:10

+0

是原件是不正确的\ – 2014-10-16 17:23:54