Итак, у меня есть функция, которая блокирует как это:Подождите асинхронный .done() в каждой итерации цикла
function getMainData() {
var dfd = $.Deferred();
$.getJSON('My string that i pass',
function(result) {
if (result !== undefined) {
dfd.resolve(result);
}
})
return dfd.promise()
}
function getSpecificData() {
var dfd = $.Deferred();
var myArray = [];
for (var i = 0; i < 5; i++) {
getMainData().done(function(result) {
myArray.push(result)
dfd.resolve(myArray) //This is where I am lost.
})
}
return dfd.promise()
}
getSpecificData().done(function(result) {
console.log(result);
})
Я думаю, что я знаю, как обещает работать, если вы приковать их вместе, но я не могу сделать for-loop для ожидания завершения асинхронного вызова до следующей итерации.
Может кто-нибудь, пожалуйста, помогите мне?
Спасибо за решение, это сработало хорошо, и я фактически не думал о рекурсивных методах. – Zorken17