Pourquoi est-ce que je reçois une erreur q[num] lors de l'abandon d'un pipeline de file d'attente jQuery ?
Question
Lors de la création et de l'exécution d'une file d'attente de requêtes ajax avec $.manageAjax
, J'appelle ajaxManager.abort();
, pour abandonner toute la file d'attente en raison d'une erreur, auquel moment j'obtiens une erreur indiquant : q[num] has no properties (jquery.ajaxmanager.js line 75)
Voici le code d'appel :
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
Il y a 4 requêtes dans la file d'attente, celle-ci est appelée en cas de succès de la première requête, si certains critères sont remplis, la file d'attente doit être abandonnée.
Des idées?
La solution
Il semble que vous ayez moins d'éléments dans q que ce à quoi vous vous attendiez lorsque vous avez commencé à itérer.Votre script essaie peut-être d'accéder à q[q.length], c'est-à-direl'élément après le dernier élément.
Se pourrait-il que votre demande réussie ait été retirée de la file d'attente et que vous ayez une condition de concurrence critique ?Essayez-vous d'abandonner une requête qui a déjà terminé son cycle de vie ?Alternativement, avez-vous commis une erreur stupide comme les gens le font parfois et vous êtes-vous trompé dans la condition de terminaison de votre boucle ?
Juste quelques réflexions, j'espère qu'elles vous aideront.