Используя обещания jQuery, я пытаюсь:
- Вызвать API для всех возможных значений (животного)
- Вызвать метод API для каждого животного (звук животного))
- Уведомлять, когда возвращается звук каждого животного - скажем, требуется время, чтобы выработать
- Уведомлять, когда все звуки животного возвращены
Япомещая все звуковые функции животных в массив, затем вызывая $.when()
.Я ожидаю, что это разрешится, когда все звуки животных вернутся, но я обнаружил, что это разрешается немедленно.Кто-нибудь знает, что я делаю не так?
function () {
$('#txtNotification').text('Started ....');
$.ajax({
url: "/api/animals/all"
}).done(function(data) {
var animalFunctions = [];
for (var animalType of data) {
var animalFunction = $.ajax({
url: "/api/animal/sound/" + animalType
}).done(function(data) {
$('#txtNotification').text(data);
});
animalFunctions.push(animalFunction);
}
$.when(animalFunctions).then(function() {
$('#txtNotification').text('Done.');
});
});
}