Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何等待在不同本地空间中调用的异步ajax请求_Jquery_Ajax_Asynchronous - Fatal编程技术网

Jquery 如何等待在不同本地空间中调用的异步ajax请求

Jquery 如何等待在不同本地空间中调用的异步ajax请求,jquery,ajax,asynchronous,Jquery,Ajax,Asynchronous,我的程序结构是这样的 if(some condition){ $.ajax(...); } if(some condition){ $.ajax(...); } doSomething(); 如何在doSomething()之前等待异步$.ajax函数的响应?使用async:false是否为“正确方式”?您可以将这些请求推送到一个数组中: var requests = []; if(some condition){ requests.push($.ajax(...));

我的程序结构是这样的

if(some condition){
    $.ajax(...);
}
if(some condition){
    $.ajax(...);
}
doSomething();

如何在doSomething()之前等待异步$.ajax函数的响应?使用async:false是否为“正确方式”?

您可以将这些请求推送到一个数组中:

var requests = [];
if(some condition){
    requests.push($.ajax(...));
}
if(some condition){
    requests.push($.ajax(...));
}

$.when.apply($, requests ).done(doSomething);

您可以在阵列中推送这些请求:

var requests = [];
if(some condition){
    requests.push($.ajax(...));
}
if(some condition){
    requests.push($.ajax(...));
}

$.when.apply($, requests ).done(doSomething);

设置
async:false
几乎无法解决任何问题。如果你需要它,主要是因为糟糕的设计。来自A.Wolff的解决方案应该是首选的方式。永远不要像@smoksnes已经说过的那样使用async:false。您可能想看看设置
async:false
几乎无法解决任何问题。如果你需要它,主要是因为糟糕的设计。来自A.Wolff的解决方案应该是首选的方式。永远不要像@smoksnes已经说过的那样使用async:false。你可能想看看