繁体   English   中英

延迟jquery ajax请求的顺序

[英]Order of deferred jquery ajax requests

我有语言列表, ['en', 'de']等等,我想为每种语言提供复杂的ajax请求。 在第一个ajax请求我得到每个语言的意图数量。

var languages = ['en', 'de', 'es', 'fr', 'it', 'cn'];
intents_dic = [];
chart_quantity = ['quantity'];
for (var x = 0; x < languages.length; x++){
    $.ajax({
    url: 'url',
    type: 'GET',
    async: false,
    success: function(data){
        for (i in data){
            intents_dic.push(data[i]['id'])
        }
        var intents_count = 0;
        var deferreds = [];

在第二步,我需要计算前一次通话中每个意图的短语数量。 我使用延迟列表来完成这项任务。

for (var id = 0; id < intents_dic.length; id++){
    deferreds.push($.ajax({
    url: 'url',
    type: 'GET',
    success: function(data){
        intents_count += data['templates'].length;
        }
    }))
}
$.when.apply(null, deferreds).done(function() {
    chart_quantity.push(intents_count);
})

但是当延迟的ajax请求完成时,完成的顺序因语言列表顺序而不同(它是构建图的主体)。 这个问题可以修复,还是ajax调用的功能? 谢谢。

这是你的分叉和工作jsfiddle(具有有序结果的异步调用)。

for(var i = 0; i < 5; i++){
    setTimeout(function(x){
        done(x,results);
    }(i),1000);
}

http://jsfiddle.net/htuz3t3m/2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM