我有以下代码:
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中的每个响应定义变量,而是检索一组响应。
我应该怎么做?
谢谢!
答案 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
})
})