for
-loops와 외부 URL에 대한 Ajax 호출을 중첩했습니다. 나는 약속을 사용하고 싶지만, 어디에 넣어야할지 모른다. $.getJSON
요청이 모두 완료되어 problemHost
을 출력해야합니다.jQuery - 모든 Ajax 요청이 완료되면 무언가 수행
if (problemHost.length > 0) {
console.log(problemHost);
}
내가의 약속을 배치해야합니까 장소 :
for (var i = 0; i < hosts.length; i++) {
var obj = hosts[i];
for (var key in obj) {
var attrName = key;
var attrValue = obj[key];
host = obj[key];
console.log(host);
$.getJSON('http://myURL/get/', {
uid: host + "." + domain,
last: 1
}, function(data) {
json = data;
for (var i = 0; i < json.length; i++) {
var obj = json[i];
for (var key in obj) {
var attrName = key;
var attrValue = obj[key];
if (key.includes("JFSFILE_")) {
var newkey = key.replace("JFSFILE_", "");
console.log(newkey + " " + obj[key]);
if (parseFloat(obj[key]) > 20) {
if (typeof problemHost[host] == 'undefined') {
problemHost[host] = {};
}
problemHost[host][newkey] = obj[key];
}
}
}
}
});
}
}
이 모든 아약스 호출이 완료 때까지 실행되지해야합니까? 이 문제를 해결하는 가장 좋은 방법입니까?
downvoting하기 전에 - 왜 저에게 교육을 해주시겠습니까? – CMS
아니 downvoter, 위의 덧글을 삭제 더 나은 당신은 더 많은 downvotes 당신이 얻을 것이다 – Satpal
여기에 약속을 사용하여 훌륭한 응답이있다 http://stackoverflow.com/a/21807497/4848251 –