1

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

function GetAllData() {

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

   UpdatePage(data1,data2,data3);
}

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

任何建议,将不胜感激。

4

1 回答 1

1

当您使用 JQuery 时,延迟是您正确的解决方案。

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);
}
于 2013-08-07T02:15:13.993 回答