Découvrons tap et map - RxJs et les Observables

rxjs observable decouverte

Continuons notre aventure des Observables, en nous arrĂȘtant sur les premiers operateurs que vous allez obligatoirement utiliser, Ă  savoir : tap et map.

Découvrons les operators

Vous vous souvenez de la commande fetch de vanilla js ?

Pour rĂ©cupĂ©rer le json envoyĂ© depuis l’api, vous aviez du faire deux then :

  • un premier pour rĂ©cupĂ©rer le retour de l’api
  • un second pour parser le retour json et rĂ©cupĂ©rer le javascript

Et bien c’est un peu de ce principe que nous allons nous inspirer pour expliquer les operators.

Intérargir dans le tuyau

Lors du premier article sur les observables, nous avions parlĂ© du principe du tuyau, qui est une bonne image pour comprendre ce qu’est l’observable.

Votre tuyau Ă©met des gouttes d’eau de maniĂšre continuelle ou non, tout dĂ©pend de l’Ă©metteur du tuyau.

OK, et si je vous disais que vous pouvez intĂ©rargir dans le tuyau avant mĂȘme de rĂ©cupĂ©rer l’eau pour l’arrosage ?
Ca serait pas mal non ?

L’arrivĂ©e du pipe

Depuis une Observable, vous allez pouvoir appliquer des operators grùce à la méthode : pipe.
Cette mĂ©thode porte bien son nom ! Nous allons pouvoir intĂ©ragir avec le tuyau de l’observable … grĂące aux operators.

Les operators

Ils ne sont que des fonctions pures, qui prennent une Observable en entrée et renvoie une observable en sortie.

Nous pouvons chaĂźner les operators, autant que nous le souhaitons, Ă  l’intĂ©rieur de la fonction pipe.

Nos premiers exemples avec tap et map

L’opĂ©rateur tap

Il va vous permettre d’inspecter ce qui se passe dans le tuyau, sans l’altĂ©rer.
Attention, il est devenu obsolĂšte maintenant.
monObservable.pipe(tap(item => console.log(item)).subscribe();

L’opĂ©rateur map

VoilĂ  notre premier operator intĂ©ressant ! Il va permettre de transformer ce qu’il y a dans le tuyau !

Imaginons que nous ayons un tuyau qui Ă©mette des entiers commençant par 0, nous allons pouvoir les faire commencer par 1, puis 2, puis .. 🙂

monOservable.pipe(map(item => item + 1)).subscribe(item => console.info(item));

Ce qui sera affiché ? Si notre observable commence à émettre à 0, on aura en fait 1.

Nous avons donc modifiĂ© ce qu’il y a dans le tuyau avant rĂ©ception !

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639