안녕하세요, 저는 jQuery each() - ajax 요청을 포함하는 루프와 setTimeout을 처리하고 있습니다. 그것은 저에게 프로그램 흐름에 몇 가지 문제점을줍니다.각 루프가 완료된 후 함수 실행
xml_queries: function (data) {
var values = [];
// ...
$.each(data, function(index, value) {
// ...
// Start xml query
var i = 0;
get_data(value.value);
function get_data(value) {
$.ajax({
type: 'POST',
url: '/admin/scanner/get_music_data/' + value,
dataTaype: 'json',
success: function(response) {
if (response === 'FALSE') {
// Start recursion - up to 3 Retries
if (++i <= 3) {
setTimeout(function() {
get_data();
}, 100);
} else {
// ...
}
} else {
values.push(response);
}
}
});
}
});
// return values;
console.log(values);
}
내 문제 (루프가 계속 데이터를 처리하는 동안)의 마지막 줄에서 CONSOLE.LOG()가 immediatly 소성이다. 루프가 끝날 때까지 기다릴 쉬운 가능성이 없습니까? \ :
감사합니다.
그것은 일반적인 아약스 - 인 - 비동기 문제의 재 설계하는 것입니다. 이 점에 관해서는 ** 톤 **의 질문이 있습니다. –