皆さん私は約束を使ってループ内でajaxを使用しようとしていますが、ループ内で2回目のajax呼び出しはajaxリクエストではありません。約束を使用してループ内でajaxを呼び出す
これは私のコードです:
var general = [];
var all_info =[];
var usuario =[];
var resultPromise = getProjects(); // Promise for a response.
resultPromise.then(function(all_projects) {
return $.when.apply($, all_projects.map(function (current_project, index){
var items = {};
items.name = current_project.key;
items.children = [{"total_cpu": current_project.cpuhour_tot, "num_jobs" : current_project.num_jobs }];
return addUsers(current_project.key)
.then(function(item_user) {
info_user = {};
info_user.name = item_user.key;
info_user.children = [{"total_cpu" : item_user.cpuhour_tot, "num_jobs": item_user.num_jobs }];
all_info.push(info_user);
});
items.children.push(all_info);
general.push(items)
}));
})
.then(function() {
console.log("complete", general);
})
.fail(function(jqxhr, textStatus, errorThrown) {
console.log(errorThrown);
})
私はこのラインreturn addUsers...
から戻ったとき、私は項目にall_info
値を含める必要があり、all_projectsに他のループを実行する前に、私は
general.push(items)
items
にアクセスすることはできません。
私には何が欠けていますか?
ありがとうございます!
foreachの代わりにwhileループを実行し、約束が行われた後にカウンタをインクリメントします。それを得る ? –
http://stackoverflow.com/questions/18424712/how-to-loop-through-ajax-requests-inside-a-jquery-when-then-statment – bassxzero
なぜあなたは '.forEach()'内で同じ識別子を使用しますか? 'var resultPromise = addUsers(current_project.key);'? – guest271314