Lassen Sie uns die folgende vereinfachte Situation berücksichtigen:Filter eine beobachtbare durch eine beobachtbare
- Wir haben eine beobachtbare Äpfel vom Typ beobachtbare < Apfel>
- Jedes Apple-Objekt verfügt über eine Methode isRotten(), die gibt einen beobachtbaren von Typ Observable < Boolean> welcher garantiert mindestens einen booleschen Wert ausgibt.
Ich möchte die beobachtbaren Äpfel so filtern, dass die faulen Äpfel den Filter nicht passieren. Genauer gesagt, ein Apfel A passiert den Filter genau dann, wenn der erste von A.isRotten() ausgegebene Gegenstand falsch ist. Was ist der beste Weg, diesen Filter zu implementieren?
Nach einiger Überlegung konnte ich mit diesem kommen:
apples
.concatMap(apple =>
apple.isRotten()
.first()
.filter(bool => bool)
.map(bool => apple))
, die in Javascript geschrieben. (... => ... ist eine Funktion). Das funktioniert, aber ich denke, es ist ziemlich lang und schwer zu verstehen. Gibt es einen besseren Weg, um so etwas zu tun?
Danke für deine Antwort, ich habe gehofft, dass etwas wie filterObservable existiert. Aber ich denke, ich muss es selbst implementieren. –