Introduction à RxJS
- Le paradigme de programmation réactive.
- Histoire du projet ReactiveX.
- Présentation de la librairie RxJS.
- Les concepts d’observable, d’observer, de souscription et d’opérateurs.
- Mise en œuvre dans les projets front et back.
Travaux pratiques
Mise en place d’un environnement d’exercices (Node.js).
Les fondamentaux de RxJS
- Présentation du Design Pattern Observer.
- Création d’observables manuellement ou à partir de données.
- Encapsulation de fonctionnalités asynchrones natives dans un observable.
- Observation d’un observable.
- Gestion des souscriptions aux observables.
Travaux pratiques
Création de différents observables manuels ou s’appuyant sur des données ou des fonctionnalités du navigateur.
Les opérateurs, manipulation des flux de données
- Le principe de pipeline d’opérateurs.
- Les marble diagrams.
- Les opérateurs de filtrage.
- Les opérateurs conditionnels.
- Les opérateurs de transformation.
- Les opérateurs d’agrégation.
- Les opérateurs utilitaires.
- Créer ses propres opérateurs.
Travaux pratiques
Mise en place de pipelines simples et composés pour manipuler les séquences de données.
Les observables "chauds" (ou "hot observables")
- Différences avec un observable "froid".
- Les fonctions et opérateurs de transformation d’un observable "froid" en "chaud".
- Les sujets et le multicasting.
Travaux pratiques
Mise en œuvre d’observable ayant plusieurs observateurs.
Transformations d’observables
- Combinaison d’observables.
- Partition d’observables.
Travaux pratiques
Expérimentation des combinaisons et partitions d’observable.
Les observables d’ordre 2
- La problématique des observables d’observables.
- La stratégie de gestion en parallèle.
- La stratégie de mise en file d’attente.
- La stratégie de basculement.
- La stratégie d’ignorance.
- Choisir la bonne stratégie en fonction du besoin.
Travaux pratiques
Gestion d’appels API concurrents en réponse à des événements navigateurs.
La gestion des erreurs
- Arrêter, réessayer son opération asynchrone ou basculer vers une nouvelle opération asynchrone.
- Gérer les erreurs transitoires dans le cadre d’un observable d’ordre 2.
Travaux pratiques
Gestion des erreurs sur différents scénarios.
Tester son code avec RxJS
- Présentation du TestScheduler.
- Les fonctions d’aide (génération d’observables, tests d’observables...).
- Les syntaxes figuratives (observables, souscriptions, temps…).
Travaux pratiques
Réalisations de tests d’observables suivant différents scénarios.