为什么中止jQuery队列管道时会收到q [num]错误?

时间:2020-03-05 18:43:54  来源:igfitidea点击:

当使用$ .manageAjax创建和执行ajax请求队列时,我调用ajaxManager.abort();,由于错误而中止了整个队列,这时我得到一个错误,指出:q [num]具有没有属性(jquery.ajaxmanager.js第75行)`

这是调用代码:

var ajaxManager = $.manageAjax({manageType:'sync', maxReq:0});
// setup code calling ajaxManager.add(...)

// in success callback of first request
ajaxManager.abort(); <-- causes error in jquery.ajaxManager.js

队列中有4个请求,在第一个请求成功时将调用此请求,如果满足某些条件,则需要中止该队列。

有任何想法吗?

解决方案

回答

看起来我们在q中的项目比开始迭代时所期望的要少。脚本可能正在尝试访问q [q.length],即最后一个元素之后的元素。

可能是成功请求已从队列中弹出,并且我们处于竞争状态?我们是否要中止已经完成其生命周期的请求?或者,我们是否像人们有时一样犯了一个愚蠢的错误,并且弄错了循环终止条件?

仅有几点想法,希望对我们有所帮助。