gpt4 book ai didi

javascript - 对单个函数javascript的多个ajax调用

转载 作者:行者123 更新时间:2023-11-30 07:54:38 26 4
gpt4 key购买 nike

我有 3 个 ajax 调用。来自每个 ajax 调用的数据被传递给 john_doe();

调用 1

$.ajax({
url: url1,
dataType: "JSON",
type: "GET",
}).success(function(data1){

john_doe(data1);
});

调用 2

$.ajax({
url: url2,
dataType: "JSON",
type: "GET",
}).success(function(data2){

john_doe(data2);
});

调用 3

$.ajax({
url: url3,
dataType: "JSON",
type: "GET",
}).success(function(data3){

john_doe(data3);
});

主要功能

function john_doe(param){
console.log(param); //Print data from all three ajax call.
}

如何在john_doe函数中分离data1、data2和data3?因为我需要进行算术运算。

目前,

输入

data1 = one,two,three
data2 = four
data3 = five

输出

console.log(param) 将输出为

one
four
five

我想要输出为

console.log(param[0])
console.log(param[1])
console.log(param[2])

param[0] containing one,two,three
param[1] containing four
param[2] containing five

我无法控制数据。如何分别访问data1、data2、data3?

最佳答案

使用 promises,您可以访问 Promise.all() 回调中的所有数据,并同时执行您需要的所有操作。假设使用 jQuery 3+。可以在旧版本中使用 $.when

  var urls =['data-1.json','data-2.json','data-3.json'];
// array of ajax promises
var reqPromises = urls.map(function(url){
return $.ajax({
url: url,
dataType: "JSON",
type: "GET"
});
});

Promise.all(reqPromises).then(function(res){
// res is array of all the objects sent to each `$.ajax` from server
// in same order that urls are in
var param = res.map(function(item){
return item.val
});

console.log(param)
})

DEMO

关于javascript - 对单个函数javascript的多个ajax调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com