ajax complete调用方法,一系列的jQuery ajax调用complete(!)时执行一个函数

我需要进行一系列(1-20)ajax调用,当它们全部完成时,我需要调用另一个函数.所谓完成,是指$.ajax({complete:…})被调用时.

iv研究了何时使用$.when,但是在jsfiddle上摆弄它之后,我遇到了2个问题. 1. $.then和$.done在我所有的完整回调之前被调用.

2.如果单个ajax调用失败,则根本不会调用它.

基本上,似乎$.done是成功调用的,而不是完整的.

我认为必须有一些可以处理此类问题的优秀ajax管理器/队列.或者甚至是一些通用的异步任务都在处理.. ;;)

解决方法:

如果您不喜欢$.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();

};

由于my_ajax从未调用过deferred.reject(),因此将.fail链接到$.when

如果$.when的所有参数都是my_ajax调用,则将毫无意义.

希望对您有所帮助!请让我知道是否可以澄清任何事情.

标签:ajax,javascript,jquery

来源: https://codeday.me/bug/20191201/2079037.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值