我有三个API网址,每个网址都有相同的对象名称,我希望同时调用所有api。
我的js到目前为止:
$(document).ready(function() {
var first = 'https:first';
var second = 'https://second';
var third = 'https://third';
$('#get-data').click(function() {
var showData = $('#show-data');
$.getJSON(first,second,third function(data) {
showData.empty();
var items = data.map(function(elem) {
return $("<li />", {
text: elem.title
});
});
var list = $('<ul />').append(items);
showData.append(list);
});
});
});
答案 0 :(得分:0)
API调用是异步的,它们按照您在代码中编写的顺序执行。执行并不重要,因为'then'可以在执行时以不同的顺序调用。
如果您想要执行所有三项服务,我建议您使用 async.js 。看下面的例子:
links = ['http://first','http://second','http://third']
data = [];
$('#get-data').click(function() {
// ...
async.each(links, function(link,callback){
$.getJSON(link, function(res){
data.push(res);
callback();
})
}, function(err){
if(!err){
// your code goes here
// data[0] contains data from link 1
// data[1] contains data from link 1
// data[2] contains data from link 2
}
})
// ...
});