Considérons la situation simplifiée suivante :
- Nous avons une pomme Observable de type Observable < Pomme >.
- Chaque objet Apple possède une méthode isRotten() qui renvoie un observable de type Observable < Boolean > dont l'émission d'au moins une valeur booléenne est garantie.
Je veux filtrer les pommes observables de telle sorte que les pommes pourries ne passent pas le filtre. Plus précisément, une pomme A passe le filtre si et seulement si le premier élément émis par A.isRotten() est faux. Quelle est la meilleure façon d'implémenter ce filtre ?
Après avoir réfléchi, je suis arrivé à cette conclusion :
apples
.concatMap(apple =>
apple.isRotten()
.first()
.filter(bool => bool)
.map(bool => apple))
Qui est écrit en javascript. ( ... => ... est une fonction). Cela fonctionne, mais je pense que c'est plutôt long et difficile à comprendre. Existe-t-il une meilleure façon de faire ce genre de choses ?