拨打多个api网址并同时拨打电话

时间:2017-04-25 16:18:11

标签: javascript json rest api

我有三个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);
        });
    });
});

1 个答案:

答案 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
        }
    })
    // ...
});