我需要两个不同的ajax调用的两个返回值。
我有两个javascript函数:
this.getVal1= function(numberDep){
var promise = $.ajax({
url:url, //REST url
type:"GET",
dataType:"json",
contentType: "application/json"
});
return promise;
};
this.getVal2= function(){
var promise = $.ajax({
url:url, //another REST url
type:"GET",
dataType:"json",
contentType: "application/json"
});
return promise;
};
我如何称呼这两个功能:
$.when(getVal1(17),getVal2())
.done(function(_topdep,_alldep){
console.log(_topdep);
console.log(_alldep);
});
以下是每个console.log
的结果:http://i.stack.imgur.com/IHBQx.png。
我应该从第一个console.log
返回的是那17个记录,第二个console.log
是36个记录(请查看上图)。
非常感谢任何帮助,谢谢..
答案 0 :(得分:3)
由于这些是ajax promise并且ajax promise具有多于1个回调参数(data,status,jqXHR),then
回调将接收一个数组作为每个回调的值。因此,要获取获取每个参数的第一个成员所需的数据
$.when(getVal1(17), getVal2())
.done(function (_topdep, _alldep) {
console.log( _topdep[0] );
console.log( _alldep[0] );
});
演示:Fiddle
答案 1 :(得分:-2)
我猜你想要在完成两个单独的ajax调用之后返回结果吗?如果是这种情况,那么您可以在Promise
中包装每个ajax请求并使用Promise.all([promise1, promise2])
构造。