如何同步嵌套ajax调用



我有

function SomeFunc() {
  $.when($.ajax()).then(FunctionWhichDoesMoreAjax());
}

现在我需要在这个调用后面加上另一个调用。

$.when(SomeFunc()).then(FunctionWhichDoesMoreAjax2());

我试着修改SomeFunc()

function SomeFunc() {
  return $.when($.ajax()).then(return FunctionWhichDoesMoreAjax());
}

但是,这完全破坏了功能。IDE报告错误

预期表现

at return FunctionWhichDoesMoreAjax());

我应该如何同步这些?

try this:

function SomeFunc() {
  return $.when($.ajax()).then(FunctionWhichDoesMoreAjax);
}

实际上需要向处理Ajax请求的服务器端控制器发送一个id。一个很好的可用性方法是,在你的脑海中,你可以在所有情况下使用两个位置的数组。第一个位置将有请求的id和第二个数据,例如json数据或其他任何东西。当服务器端完成它的工作时,它将响应发送回具有相同模式、id、数据和您的完成的数组中的页面。你可以在你的页面中发送异步,而不用担心混淆请求。

function request1(){
    data=getdata;
    arrData={1,data};
    ajaxsent(controler,data,onresponse1);
}
function request2(){
    data=getdata
    arrData={2,data};
    ajaxsent(controler,data,onresponse2);
}
function request3(){
    data=getdata;
    arrData={3,data};
    ajaxsent(controler,data,onresponse3);
}
function request4(){
    data=getdata;
    arrData={4,data};
    ajaxsent(controler,data,onresponse4);
}
function onresponse1(xml){
    synchronizer(xml);
}
function onresponse2(xml){
    synchronizer(xml);
}
function onresponse3(xml){
    synchronizer(xml);
}
function onresponse4(xml){
    synchronizer(xml);
}
function synchronizer(xml){
    switch(xml.id)
    case 1: dostuff;
    case 2: dostuff;
    case 3: dostuff;
    case 4: dostuff;
}

最新更新