我正在尝试让 jquery 延迟工作,如下面的代码所示。
<script type="text/javascript">
var appUrls = {
GetDataUrl : '@Url.Action("GetData")'
};
function GetData1(){
return $.getJSON(appUrls.GetDataUrl, { Id: 1 });
}
function GetData2() {
return $.getJSON(appUrls.GetDataUrl, { Id: 2 });
}
$(function(){
$("#result").html("Getting Data1, Data2 .... ");
$.when(GetData1(), GetData2())
.then(function(result){
//The 'result' only contains the data from first request.
console.log(result);
$("#result").html("Completed GetData1, GetData2");
});
});
</script>
在两个调用都完成后,我想提取从两个调用返回的 Json 数据。但是,'result' 对象只包含第一次调用(GetData1)返回的数据?如何获得上面“then”回调方法中两次调用的结果。
最佳答案
由于您有两个请求,您将获得两个参数 result1,result2
:
<script type="text/javascript">
var appUrls = {
GetDataUrl : '@Url.Action("GetData")'
};
function GetData1(){
return $.getJSON(appUrls.GetDataUrl, { Id: 1 });
}
function GetData2() {
return $.getJSON(appUrls.GetDataUrl, { Id: 2 });
}
$(function(){
$("#result").html("Getting Data1, Data2 .... ");
$.when(GetData1(), GetData2())
.then(function(result1,result2){
console.log(result1);
console.log(result2);
$("#result").html("Completed GetData1, GetData2");
});
});
</script>
关于javascript - 如何在 jquery 中获取多个延迟调用的 ajax 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5066544/