Чтобы сделать это с неопределенным количеством запросов, поместите объекты jqXHR, возвращенные из $.get()
(или $.ajax()
, или $.post()
), в массив, затем примените этот массив к $.when()
, например так:
var requests = [];
for (var i = 0; i < requestsToBeMade; i++) {
requests.push($.get(`db.url?id=key${i}`));
}
$.when.apply($, requests).done(function() {
// do some work here...
});
Однако, хотя это будет работать, это не идеально.Вы не должны делать несколько запросов AJAX в такой быстрой последовательности, так как это создает необходимую нагрузку на сервер и не масштабируется.
Лучшим решением было бы объединить все отправляемые вами данные.и вместо этого сделайте один запрос.