在最后一个完成之前,从Array.each中停止下一个项目?

时间:2011-08-11 15:45:26

标签: javascript arrays mootools

我有一个array.each函数,它为每个项调用JSONP请求,并从JSONP提要中将代码注入页面。

但是,项目的输入顺序错误,与Feed中的连续顺序不同。我假设发生了这种情况,因为它在第一次运行之前通过.each函数运行的下一个项目一旦完成检索其feed并注入。

如何强制每个“下一个”项目等待,直到前一个项目完成?

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 个答案:

答案 0 :(得分:1)

欢迎使用事件驱动编程。

你需要从之前的'onComplete'中解除每一个,而不是试图从同一段代码中解除它们。 可以通过让每个人等到你的onComplete设置了一个标志来做到这一点,但是根据事件构建代码要好得多。