当getJSON URL的数量可变时,如何使用$

How to use $.when when the number of getJSON URLs is variable?

本文关键字:何使用 URL getJSON      更新时间:2023-09-26

我正在将getJSON请求与.when链接。

代码与此类似:

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

如果URL集包含url3或url4或更多,或者只有url0,我该如何写?

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

  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演示: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()});

或者用这个来看看req 是怎么回事

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