我有一个javascript应用程序,可以从多个jsonp请求中获取数据。返回所有数据后,将使用新数据更新页面。下面是伪代码,但它是为同步环境构建的。
function GetAllData() {
var data1= GetData1();
var data2= GetData2();
var data3= GetData3();
UpdatePage(data1,data2,data3);
}
我遇到的问题是我需要收集并知道在更新页面之前从jsonp请求返回所有数据的时间。我看着jquery延期,但我不确定这是否是正确的解决方案。
任何建议将不胜感激。
答案 0 :(得分:1)
Deferred是你正确的解决方案。
function GetData1() {
return $.ajax("/foo", ...);
}
function GetData2() {
return $.ajax("/bar", ...);
}
function GetData3() {
return $.ajax("/baz", ...);
}
function UpdatePage(data1, data2, data3) {
...
}
function Error() {
alert("An error occurred while fetching data");
}
function GetAllData() {
$.when(GetData1(), GetData2(), GetData3()).then(UpdatePage, Error);
}