Ignorieren von AJAX-Fehlern mit dem Array arrives und $ .when

8

Ich habe den folgenden Code, der den JSON aus einem Array von YouTube-Video-IDs bezieht. Es funktioniert gut, wenn alle Videos vorhanden und die Abfrage erfolgreich ist. Es sendet mehrere getJSON-Anfragen, und wenn alle fertig sind ... wird die $ .when.done () ausgelöst und ich kann die resultierenden Daten verarbeiten.

%Vor%

Aber ... In der letzten App, die ich nicht kontrolliere, ob alle Videos in YouTube noch existieren, habe ich festgestellt, dass manchmal ein (oder mehrere) der Videos in der Liste gelöscht wurden ... oder die ID, die ich von der DB bekomme, ist falsch.

Gibt es eine Möglichkeit, dass ich sicher zur Ergebnisvariable hinzufügen kann, nur die Videos, bei denen ein erfolgreicher Whiteout aufgetreten ist, lösen $ .when.fail () aus? und warten, dass alle Abfragen beendet wurden .. .

Ich meine, mein letztes Ziel ist es, die Daten aus den vorhandenen Videos zu erhalten (diejenigen, deren Daten erfolgreich abgerufen wurden) und irgendwie diejenigen zu ignorieren, die nicht existieren oder wo sie nicht verfügbar sind ... und ich tue nicht. t jetzt, wie es geht.

Jede Idee / Vorgehensweise wird berücksichtigt. TIA!
Sie finden den Code in diesem JSFiddle

    
Putuko 12.05.2014, 20:06
quelle

2 Antworten

8

Leider kommt jQuery nicht mit dieser Funktionalität.

Gerne können Sie es selbst ganz einfach implementieren.

%Vor%

Hier ist ein JSFiddle des Ergebnisses.

    
Benjamin Gruenbaum 13.05.2014, 08:05
quelle
-1

In einer reinen JavaScript-Promise-Implementierung (oder einer spezialisierten Bibliothek wie Q oder anderen) könnten Sie dies tun:

%Vor%     
Buti 12.05.2014 21:50
quelle