javascript - 使用多个 jquery .get() 不会按顺序返回数据?

标签 javascript jquery html css

就像标题所说,我使用多个 url 来获取数据,并且使用 jquery .get() 方法。例如:

var m=0;
$.get(url1).done(function(data) 
{
    list[m] = data;
    m++;
}
$.get(url2).done(function(data) 
{
    list[m] = data;
    m++;
}
$.get(url3).done(function(data) 
{
    list[m] = data;
    m++;
}
$.get(url4).done(function(data) 
{
    list[m] = data;
    m++;
}

我有四个 url,我将数据放入数组 list[] 中。我需要按顺序排列数据,这意味着 list[1] 来自 url1,list[2] 来自 url2,依此类推。

但问题是,它并不总是按顺序排列的。有时我会从 url4 获取 list[1] 或从 url1 获取 list[2] 等数据。似乎使用多个 .get() 函数并不总是按顺序返回数据。你们知道如何使用.get()函数让数据按顺序返回吗?

最佳答案

一种解决方案是将它们全部链接在一起,这样一次获取的成功就会触发下一次获取。您可以设置另一个函数在最后一次获取完成时调用作为回调。像这样的东西(没有测试过)

var m=0;
$.get(url1).done(function (data) {
    list[m] = data;
    m++;

    $.get(url2).done(function (data) {
        list[m] = data;
        m++;

        $.get(url3).done(function (data) {
            list[m] = data;
            m++;

            $.get(url4).done(function (data) {
                list[m] = data;
                m++;
                alldone(data);
            });
        });
    });
});

function allDone(data) {
    //do this when last one completes
}

关于javascript - 使用多个 jquery .get() 不会按顺序返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004827/

相关文章:

php - Ajax 脚本未加载任何内容且未发送任何请求

javascript - 未使用的属性(property)下降?

javascript - 解析时收集 Jinja2 标签调用

jquery - 反转这个 jQuery 幻灯片插件

javascript - 循环内循环 lodash

Javascript 图像处理?逐个像素

javascript - 检测用户拖动范围类型输入

javascript - 仅当特定的其他 div 被点击时才显示 div

java - 从 tr 标签中找到一个复选框并在 Selenium(java) 中选择它

javascript - 是否可以将 Template7 代码放在单独的文件而不是 html 中