Почему я получаю ошибку q [num] при прерывании конвейера очереди jQuery? - PullRequest
2 голосов
/ 27 августа 2008

При создании и выполнении очереди запросов ajax с $.manageAjax я вызываю ajaxManager.abort();, чтобы прервать всю очередь из-за ошибки, и в этот момент я получаю сообщение об ошибке: q[num] has no properties (jquery.ajaxmanager.js line 75)

Вот телефонный код:

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

В очереди 4 запроса, это вызывается при успешном выполнении первого запроса. Если определенные критерии удовлетворены, очередь необходимо прервать.

Есть идеи?

1 Ответ

1 голос
/ 28 августа 2008

Похоже, что у вас меньше элементов в q, чем вы ожидали, когда начинали итерацию. Возможно, ваш скрипт пытается получить доступ к q [q.length], то есть к элементу после последнего элемента.

Может ли быть так, что ваш успешный запрос был извлечен из очереди, и у вас есть условие гонки? Вы пытаетесь прервать запрос, который уже завершил свой жизненный цикл? Или вы допустили глупую ошибку, как это иногда делают люди, и неправильно поняли условие завершения цикла?

Несколько мыслей, надеюсь, они помогут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...