RxJs Observables imbriqués les abonnements?
Quel est le moyen de simplifier quelque chose comme l'exemple de code suivant?
Je ne peux pas trouver le bon opérateur.. quelqu'un pourrait-il donner un court exemple?
this.returnsObservable1(...)
.subscribe(
success => {
this.returnsObservable2(...)
.subscribe(
success => {
this.returnsObservable3(...)
.subscribe(
success => {
...
},
Vous êtes probablement à la recherche pour
flatMap
ou switchMap
de l'opérateur.
OriginalL'auteur Max Solid | 2017-03-19
Vous devez vous connecter pour publier un commentaire.
Comme mentionné dans les commentaires, vous êtes à la recherche pour le
flatMap
opérateur.Vous pouvez trouver plus de détails dans les réponses précédentes :
Votre exemple de lecture :
OriginalL'auteur user3743222
La switchMap opérateur peut également être utile.
Quelques exemples qui décrivent l'utilité de switchMap par rapport à imbriqués les abonnements peuvent être trouvés ici:
Ce codepen donne une démonstration:
https://codepen.io/anon/pen/zdXBvP?editors=1111
Ce codepen donne une démonstration:
https://codepen.io/anon/pen/xLeOZW?editors=1111
Une tendance générale que j'ai trouvé est à remplacer tous les "souscrit" avec "switchMap" le retour le lendemain intérieure Observables. Puis clouez les plus imbriqués "s'abonner" sur la fin de la chaîne
OriginalL'auteur sdec
Déjà répondu pour RxJS 5, je suis tombé sur cette page, tout en utilisant 6.
Dans le cas où vous êtes sur 6 (et je pense que vous devriez être maintenant), vous pouvez utiliser
flatmap
comme un opérateur danspipe
.Modifié le code de l'exemple de @user3743222:
OriginalL'auteur Mathijs Segers