[英]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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.