Un grand merci pour votre visite !
Obtenez le guide ultime pour bien débuter en programmation !

- Choisissez la meilleure approche pour apprendre à coder
- Découvrez comment rester motivée
- Une astuce unique pour devenir un-e meilleur-e développeur-euse
Nous continuons notre série autour des observables et de RxJs. Après avoir vu le filter et parler des map, nous allons approfondir nos connaissances avec switchMap, concatMap, mergeMap.
Rappelons tout d’abord que les operators, Observable, ne sont que des fonctions orchestrés en mode programmation fonctionnelle, programmation Reactive.
Ainsi lorsqu’on utilise un observable et que l’on applique un operator dans un pipe, on applique une fonction de projection dans une fonction (le pipe).
Maintenant, nous souhaitons travailler avec plusieurs Observables, et orchestrer les appels.
Souvenez-vous les Promise avec le then, qui peut appeler un then, ..
Comme dans cet exemple :
fetch(monurl).then(item => item.json()).then(resultats => console.info(resultats));
Ici, nous notons que nous avons une promise qui retourne un item (la Réponse) qui va être parsée en json, ce parsing renvoyant une promise.
Nous pouvons donc l’écrire ainsi, en Observable :
from(fetch(monurl)).pipe(map(reponse => console.info(reponse));
Ici, en fait, en s’arrêtant là, on est bloqué, on a une réponse, mais on doit la parser en json, donc réutiliser : un from sur la promise du json(). Ca donne :
from(fetch(monurl)).pipe(map(reponse => from(reponse.json()));
Ok Ok, et si on s’inscrit sur ce résultat, ça donne quoi sur la console ?
On aura, …. on aura : bim … une Observable.
Et oui, le map ne permet pas de transformer une observable retourner par une observable.
C’est là qu’interviennent les switchmap, concatmap et mergemap !
On utilise ici la source enfant, et on attend le complete pour continuer l’émission du parent.
A la différence du concatMap, ici, on ne va pas attendre la fin d’émission de la deuxième observable (celle dans le concatMap), ici c’est une vraie fusion :
L’émission du parent déclenche l’appel de l’émission de l’enfant, puis du second enfant.
Donc on fusionne chaque émission : parent + enfant.
Et enfin le dernier operator : le switchMap.
Ici, c’est plus particulier, on se désinscrit de l’émission de chaque parent, pour appeler l’émission de chaque enfant.
Ca veut que l’émission parent se fera bien, mais ne sera pas “garder”.
Votre guide GRATUIT pour bien débuter la programmation !
Tout ce qu'il faut pour bien démarrer ! 🙂
Un grand merci pour votre visite !
Obtenez le guide ultime pour bien débuter en programmation !
Inscrivez-vous pour obtenir votre guide !
Votre guide GRATUIT pour bien commencer la programmation !