¿Por qué recibo un error q[num] al cancelar una canalización de cola jQuery?
Pregunta
Al crear y ejecutar una cola de solicitudes ajax con $.manageAjax
, Yo lo llamo ajaxManager.abort();
, para cancelar toda la cola debido a un error, momento en el que aparece un error que indica: q[num] has no properties (jquery.ajaxmanager.js line 75)
Aquí está el código de llamada:
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
Hay 4 solicitudes en la cola, esto se llama en caso de éxito de la primera solicitud; si se cumplen ciertos criterios, es necesario cancelar la cola.
¿Algunas ideas?
Solución
Parece que tienes menos elementos en q de los que esperabas cuando empezaste a iterar.Es posible que su secuencia de comandos esté intentando acceder a q[q.length], es decir.el elemento después del último elemento.
¿Podría ser que su solicitud exitosa haya sido extraída de la cola y tenga una condición de carrera?¿Está intentando cancelar una solicitud que ya completó su ciclo de vida?Alternativamente, ¿ha cometido un error tonto como a veces comete la gente y ha cometido una condición de terminación de bucle incorrecta?
Sólo unas cuantas reflexiones, espero que os ayuden.