Остановить следующий элемент в Array.each, начинающийся до того, как последний завершится? - PullRequest
0 голосов
/ 11 августа 2011

У меня есть функция array.each, которая вызывает запрос JSONP для каждого элемента и вставляет код на страницу из фида JSONP.

Однако элементы вводятся в неправильном порядке, что отличается от последовательного порядка в ленте. Я предполагаю, что это происходит из-за того, что следующий элемент проходит через функцию .each до того, как первый из них завершит получение своего фида и инъекций.

Как я могу заставить каждый «следующий» элемент ждать до тех пор, пока предыдущий не закончил?

var list = new Array("1","2","3","4","5");

Array.each(list, function(item)
{
    new request.JSONP..

    onComplete: function()
    {
        //inject code
    }
});

если код инъекции выводит числа в массиве, он будет каждый раз случайным:

2,4,5,1,3

Я хочу, чтобы это было в порядке:

1,2,3,4,5

Надеюсь, что это имеет смысл, спасибо.

Использование Mootools 1.3

1 Ответ

1 голос
/ 11 августа 2011

Добро пожаловать в программирование на основе событий.

Вам нужно запускать каждый из 'onComplete' предыдущего, а не пытаться запустить их все из одного и того же куска кода. Вы могли бы сделать это, заставляя каждого ждать, пока ваш onComplete установит флаг, но гораздо лучше структурировать ваш код в соответствии с событиями.

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