gpt4 book ai didi

javascript - 当一系列 jquery ajax 调用完成时执行一个函数(!)

转载 作者:行者123 更新时间:2023-11-29 10:50:31 24 4
gpt4 key购买 nike

我需要进行一系列 (1-20) ajax 调用,并且我需要在它们全部完成后调用另一个函数。我所说的完成是指调用 $.ajax({ complete: ...}) 时。

我研究过使用 $.when,但在 jsfiddle 上摆弄它之后我遇到了 2 个问题。 1. $.then 和 $.done 在我所有的完整回调之前被调用。2. 如果一个 ajax 调用失败,则根本不会调用它。基本上,似乎 $.done 是在成功时调用的,而不是完成的。

我认为一定有一些好的 ajax 管理器/队列可以处理这类事情。或者甚至可能是一些通用的异步任务处理问题.. ;)

fiddle :http://jsfiddle.net/zvSgX/2

最佳答案

如果您不喜欢 $.ajax 的默认 jQuery 选择调用解析它们的延迟对象,您可以编写自己的包装器;

var my_ajax = function (options) {

var deferred = $.Deferred();
var user_complete = options.complete;

options.complete = function (jqXHR, textStatus) {
if (user_complete) user_complete(jqXHR, textStatus);
deferred.resolve();
};

$.ajax(options);

return deferred.promise();
};

这是一个fork of your JSFiddle演示它与你的行动示例代码。

由于 my_ajax 从未调用过 deferred.reject(),因此将 .fail 链接到 $.when如果 $.when 的所有参数都是 my_ajax 调用,则将毫无意义。

希望对您有所帮助!如果我能澄清任何事情,请告诉我。

关于javascript - 当一系列 jquery ajax 调用完成时执行一个函数(!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030946/

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