Perché ricevo un errore q[num] quando interrompo una pipeline della coda jQuery?
Domanda
Durante la creazione e l'esecuzione di una coda di richieste Ajax con $.manageAjax
, Chiamo ajaxManager.abort();
, per interrompere l'intera coda a causa di un errore, a quel punto ricevo un errore che indica: q[num] has no properties (jquery.ajaxmanager.js line 75)
Ecco il codice chiamante:
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
Ci sono 4 richieste in coda, questa viene chiamata in caso di successo della prima richiesta, se vengono soddisfatti determinati criteri, la coda deve essere interrotta.
Qualche idea?
Soluzione
Sembra che tu abbia meno elementi in q di quanto ti aspettavi quando hai iniziato l'iterazione.Il tuo script potrebbe tentare di accedere a q[q.length], ad es.l'elemento dopo l'ultimo elemento.
Potrebbe essere che la tua richiesta andata a buon fine sia stata eliminata dalla coda e tu abbia una condizione di competizione?Stai tentando di interrompere una richiesta che ha già completato il suo ciclo di vita?In alternativa, hai commesso uno stupido errore come a volte fanno le persone e hai sbagliato la condizione di terminazione del loop?
Solo qualche considerazione, spero che aiutino.