Javascript 使用多个jquery.get()进行获取不会';是否按顺序返回数据?

Javascript 使用多个jquery.get()进行获取不会';是否按顺序返回数据?,javascript,jquery,html,css,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++; }

正如标题所说,我使用多个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或url1中获取类似于
list[1]
的数据。似乎使用了多个
。get()
函数并不总是按顺序返回数据。你们知道如何使用.get()函数按顺序获取数据返回吗?

AJAX是异步的,响应的顺序可能与发送请求的顺序不同

一种解决方案是使
m
成为在发送请求时设置的闭包变量,这样您就可以填写正确的列表元素:

$.each([url1, url2, url3, url4], function(m, url) {
    $.get(url).done(function(data) {
        list[m] = data;
    });
});

AJAX是异步的,响应的顺序可能与发送请求的顺序不同

一种解决方案是使
m
成为在发送请求时设置的闭包变量,这样您就可以填写正确的列表元素:

$.each([url1, url2, url3, url4], function(m, url) {
    $.get(url).done(function(data) {
        list[m] = data;
    });
});

一个解决方案是将它们链接在一起,这样一来,一个项目的成功就可以让下一个项目成功。您可以设置另一个函数,在最后一次get完成时作为回调调用。类似这样的东西(还没有测试过)


一个解决方案是将它们链接在一起,这样一来,一个项目的成功就可以让下一个项目成功。您可以设置另一个函数,在最后一次get完成时作为回调调用。类似这样的东西(还没有测试过)


您必须嵌套
$.get()
s,并记住
列表仅在上一个成功函数中可用。您需要将它们实际链接在一起,以便在第一个成功时,成功函数调用下一个,然后成功函数调用下一个,依此类推。我还将研究如何使用承诺,这样您就可以建立一个承诺数组,然后使用。然后按顺序执行。您必须嵌套
$.get()
s,并记住
列表只在您上次的成功函数中可用。您需要将它们链接在一起,以便在第一次成功时,success函数调用下一个函数,然后success函数调用下一个函数,依此类推。我还将研究如何使用承诺,这样您就可以建立一个承诺数组,然后使用.然后按顺序执行。