Javascript 使用Jquery从多个端口获取数据
下面是我用来从两个localhost端口(1000和2000)捕获数据的js: 我发现来自端口的数据将在不同的时间到达我的手中,而不会同时到达。我想知道的是,如何确保来自端口的所有数据都已到达我手中,然后只有我才能执行函数Javascript 使用Jquery从多个端口获取数据,javascript,jquery,html,Javascript,Jquery,Html,下面是我用来从两个localhost端口(1000和2000)捕获数据的js: 我发现来自端口的数据将在不同的时间到达我的手中,而不会同时到达。我想知道的是,如何确保来自端口的所有数据都已到达我手中,然后只有我才能执行函数work()?在解决一系列承诺后,您可以使用执行回调 var r1=$.get(“http://localhost:2000/api/group1"); 变量r2=$.get(“http://localhost:1000/api/group2"); 变量r3=$.get(“h
work()
?在解决一系列承诺后,您可以使用执行回调
var r1=$.get(“http://localhost:2000/api/group1");
变量r2=$.get(“http://localhost:1000/api/group2");
变量r3=$.get(“http://localhost:1000/api/group3");
var r4=$.get(“http://localhost:1000/api/group4");
$.when(r1、r2、r3、r4).完成(函数(a1、a2、a3、a4){
作品(a1[0]、a2[0]、a3[0]、a4[0]);
})
功能工作(组1、组2、组3、组4){
//此函数将处理所有数据。
}
在所有成功事件上调用工作
函数,并将所有变量检查为if(group1&&group2&&group3&&group4)
var组1;
$.get(”http://localhost:2000/api/group1,函数(数据){
组1=数据;
window.work();
});
var组2;
$.get(”http://localhost:1000/api/group2,函数(数据){
组2=数据;
window.work();
});
var组3;
$.get(”http://localhost:1000/api/group3,函数(数据){
组3=数据;
window.work();
});
变量组4
$.get(”http://localhost:1000/api/group4,函数(数据){
第4组=数据;
window.work();
});
window.work=函数(){
if(组1和组2和组3和组4){
//你的代码在这里。
}
}
谢谢。但是我不理解(a1,a2,a3,a4)和(a1[0],a1[1],a1[2],a1[3])。为什么不同?@Coolguy因为我们将多个承诺传递给when()
每个承诺的pram集将作为数组传递给then回调,因为ajax请求的done()
回调得到3个参数,第一个是数据数组中的第一个元素是每个请求的数据。。。代码中有一个错误。。。也解决了这个问题
var group1;
$.get( "http://localhost:2000/api/group1", function( data ) {
group1 = data;
});
var group2;
$.get( "http://localhost:1000/api/group2", function( data ) {
group2 = data;
});
var group3;
$.get( "http://localhost:1000/api/group3", function( data ) {
group3 = data;
});
var group4
$.get( "http://localhost:1000/api/group4", function( data ) {
group4 = data;
});
function work()
{
//This function will process all the data.
}