Perché ricevo un errore q[num] quando interrompo una pipeline della coda jQuery?

StackOverflow https://stackoverflow.com/questions/30342

  •  09-06-2019
  •  | 
  •  

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top