收集多个JSONP结果

时间:2013-08-07 02:11:28

标签: javascript jquery jsonp

我有一个javascript应用程序,可以从多个jsonp请求中获取数据。返回所有数据后,将使用新数据更新页面。下面是伪代码,但它是为同步环境构建的。

function GetAllData() {

   var data1= GetData1();
   var data2= GetData2();
   var data3= GetData3();

   UpdatePage(data1,data2,data3);
}

我遇到的问题是我需要收集并知道在更新页面之前从jsonp请求返回所有数据的时间。我看着jquery延期,但我不确定这是否是正确的解决方案。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

当你使用JQuery时,

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);
}