gpt4 book ai didi

javascript - 等到带有 ajax 调用的函数在 jquery 中完成执行

转载 作者:行者123 更新时间:2023-11-30 06:58:19 25 4
gpt4 key购买 nike

我有 3 个函数,在每个函数中我都有一个本质上同步的 AJAX 调用。

function()
{
a();
b();
c();
}
a()
{
ajaxGet(globals.servicePath + '/Demo.svc/GetDemoList/' + sessionStorage.SessionId,function(data, success) {}, '', {async: false}, false);
}

对于 b() 和 c() 也是类似的。

现在我想等待这些调用的执行,然后继续其他操作,因为这些操作基于我在这里得到的结果。我怎样才能完成这项工作?

最佳答案

  • A:永远不要使用 async: false。那条路通向黑暗面!
  • B:见 A :)

一种解决方案是使用从 Ajax 调用返回的 jQuery promise 。

如果您想知道所有 3 项何时完成(以任何顺序异步),请使用 $.when():

function()
{
$.when(a(), b(), c()).done(function(){
// Now do something else
});
}

并获取每个方法以返回 Ajax 调用的 jQuery promise :

function a()
{
return $.ajax(globals.servicePath + '/Demo.svc/GetDemoList/' + sessionStorage.SessionId,function(data, success) {}, ''...);
}

我使用计时器模拟了一些虚假的“ajax 调用”来展示这一点:

JSFiddle: http://jsfiddle.net/TrueBlueAussie/rqq41Lg3/

如果出于某种原因,您希望它们按顺序运行,然后触发您的额外代码,您可以将它们与 then 链接起来

a().then(b).then(c).done(function(){
console.log("All done");
});

JSFiddle: http://jsfiddle.net/TrueBlueAussie/rqq41Lg3/1/

关于javascript - 等到带有 ajax 调用的函数在 jquery 中完成执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com