Używanie odroczonego wzorca z jQuery http://api.jquery.com/jQuery.when/, Próbuję wykonać wiele wywołań jsonp ajax i czekać na wyniki przed przejściem do następnego kroku. Mogę to zrobić za pomocą ustalonej ilości wywołań, ponieważ mogę ustawić liczbę parametrów argumentów rozstrzygniętych w obiekcie odroczonym ".done()". Ale w mojej aplikacji to nie działa, ponieważ liczba połączeń jest dynamiczna i zawsze nieznana.Dynamiczne wielokrotne Odroczone wywołania jQuery Ajax
Ten pierwszy uproszczony przykład działa, ponieważ mogę ustawić liczbę argumentów w funkcji rozwiązanej .done(). Wiem, że muszę dwa ponieważ istnieją dwa połączenia w .Przy():
$.when($.ajax(url1), $.ajax(url2)).done(function(a1, a2) {
var data = a1[ 0 ] + a2[ 0 ];
});
To jest to, czego potrzebuję, ale nie może zmusić go do pracy:
var urls = GetUrlList(); // returns array of urls to json service
var requests = []; // hold ajax request
for (i = 0; i < urls.length; i++) {
requests.push($.ajax(url[i]));
}
$.when.apply($, requests).done(function ("what goes here?") {
// Need to get the data returned from all ajax calls here
});
Dzięki za wszelką pomoc na to!
Dzięki, że działa! –
Działa to dobrze, gdy masz co najmniej dwie prośby do wysłania. W przeciwnym razie otrzymasz niespójne zachowanie, gdy jest to jedno zapytanie lub kilka :( – Happynoff
link do argumentów jest nieaktualny i wskazuje na nieaktualną funkcję. [Zaktualizowany link jest to] (https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Functions/arguments) – Liam