然后使用$ .when.apply获取一系列响应

时间:2016-03-16 10:06:17

标签: jquery ajax .when

我有以下代码:

var requests = [];

var files = ['one.html', 'two.html', 'three.html'];

for(var i = 0; i<files.length; i++){
        requests.push($.get(files[i]));
}

$.when.apply(undefined, requests).
then(function(resultOne, resultTwo, resultThree){
    console.log(resultOne[0]);
})

我希望避免为.then中的每个响应定义变量,而是检索一组响应。

我应该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

在每个函数范围内,在其作用域中都有一个特殊的数组,如对象,称为arguments,它对应于传递给函数调用的值。

您可以使用arguments对象并对其进行迭代

$.when.apply(undefined, requests).
then(function(resultOne, resultTwo, resultThree) {
  $.each(arguments, function(i, val) {
    console.log(val);//it will be another array with 3 values
    console.log(val[0]);//to get the data returned by the ajax request
  })
})