我有一个语言列表,['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调用的一个特性?谢谢。
async:false
! - Bergi