2008-08-27 5 views
2

Lors de la création et l'exécution d'une file d'attente de demande ajax avec $.manageAjax, j'appelle ajaxManager.abort();, pour annuler toute la file d'attente en raison d'une erreur, à laquelle je reçois une erreur indiquant: q[num] has no properties (jquery.ajaxmanager.js line 75)Pourquoi est-ce que je reçois une erreur q [num] lors de l'abandon d'un pipeline de file d'attente jQuery?

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 demandes dans la file d'attente, cela est appelé dans le 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?

Répondre

1

Il semble que vous ayez moins d'éléments q que ce que vous attendiez lorsque vous avez démarré l'itération. Votre script peut essayer d'accéder à q [q.length], c'est-à-dire l'é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? Essayez-vous d'abandonner une demande qui a déjà terminé son cycle de vie? Alternativement, avez-vous fait une erreur stupide comme les gens le font parfois, et obtenu votre condition de terminaison de boucle erronée?

Juste quelques réflexions, j'espère qu'ils aident.

Questions connexes