如何组织许多自我依赖的ajax请求

时间:2013-09-27 14:24:48

标签: javascript

我正在尝试用JS编写应用程序。它将通过对其他站点的许多ajax调用将数据存储在一个对象中。

所以,我打电话,接收一些数据并把它放在一个变量中。然后我使用previus数据进行其他调用。将根据previus数据进行多次调用。

我为每个调用做了一些函数并尝试逐个执行它们,但是我看到当执行下一个函数时,前一个函数可能还没有完成并且数据不可用。

我知道有回调函数,但我无法通过回调函数调用每个下一个函数,因为我需要根据数据运行或不运行其中一些函数。

请帮帮我,告诉我如何整理我的应用或告诉我在哪里阅读它。我甚至不知道写什么给谷歌找我需要的东西。

1 个答案:

答案 0 :(得分:0)

您正在发出ajax请求,但是ajax请求不是同步的,那么您需要在函数内部使用回调来控制函数何时完成。

您可以使用一些封装此函数的jquery函数,以便您可以做出相同的行为。

您需要创建一个不依赖于任何数据或其他函数的函数数组:

    var deferreds = [];

    $.each(views, function(index, view) {
        deferreds.push($.get('url_that_you_want_to_call', function(data) {
                // treat your data as you wish
        }));
    });

然后你可以传递这个数组来执行它,你可以控制它们何时完成:

    $.when.apply(null, deferreds).done(callback);

您需要重复此过程,直到完成所有请求。

This answer was helpful