fehlgeschlagen ich mehrere API-Aufrufe mache, nach dem ich die kombinierten Ergebnisse jeder Aufforderung laden möchten:
$.when(
$.get(localAPI, data, function(response) {
globalStore.localShares = Number(response);
}),
$.get(facebookAPI, '', function(response){
globalStore.facebookShares = Number(response[0].share_count);
}),
$.getJSON(pinterestAPI, {url: url}).done(function(response){
globalStore.pinterestShares = Number(response.count);
})
).always(function(){
//Do stuff
});
Wenn die $.get
Anrufe fehlschlagen , die Callback-Funktion $.always
wird weiterhin ausgeführt.
Aber
Wenn nur ein $.get
Aufruf fehlschlägt, negiert er die Aktionen der vorherigen Anrufe. Wenn der erste Anruf fehlschlägt, wird globalStore
mit zwei Elementen zurückgegeben. Wenn der erste Aufruf erfolgreich ist, aber der zweite fehlschlägt, wird globalStore
mit nur einem Element zurückgegeben. Und wenn die ersten beiden Aufrufe erfolgreich sind, aber der letzte fehlschlägt, wird globalStore
leer zurückgegeben.
Gibt es einen Weg um dies zu umgehen?
Edit:
Ja, habe ich versucht, nicht wie diese in $.when
handhaben:
$.when(
$.get(mu30_ajax_frontend.ajaxurl, data, function(response) {
globalStore.localShares = Number(response);
}).fail(function(){
globalStore.localShares = 0;
}),
$.get(facebookAPI, '', function(response){
globalStore.facebookShares = Number(response[0].share_count);
}).fail(function(){
globalStore.facebookShares = 0;
}),
$.getJSON(pinterestAPI, {url: url}).done(function(response){
globalStore.pinterestShares = Number(response.count);
}).fail(function(){
globalStore.pinterestShares = 0;
})
).always(function(){
//Do stuff
});
Aber ich das gleiche Ergebnis.
Haben Sie versucht, die Fehler zu behandeln? '$ .get(). fail (function (err) {})' –
Ja, das habe ich gerade versucht. Ich habe den obigen Code hinzugefügt. Immer noch das gleiche Problem. – ibhhvc
Das klingt wie ein Duplikat von [$ .Deferred: Wie man erkennt, wann jedes Versprechen ausgeführt wurde] (http://Stackoverflow.com/q/19177087/1048572), aber ich bin mir nicht sicher, welches genaue Verhalten Sie erwarten von deinem "herum". – Bergi