Comprendre les opérateurs
Les opérateurs RxJS sont un ensemble de fonctions pour transformer, composer et contrôler les flux de données Observable.
Les opérateurs sont généralement utilisés en combinaison avec plusieurs autres, et c'est là qu'intervient le "pipeline".
Dans RxJS, les opérateurs se répartissent dans les catégories suivantes
Liste des catégories
- Opérateurs de transformation
- Opérateurs de filtrage
- Opérateurs de combinaison
- Opérateurs utilitaires
- Opérateurs conditionnels
- Opérateurs de gestion des erreurs
- Opérateurs de multidiffusion
Chaque catégorie contient un certain nombre d'opérateurs utiles. Voir chaque catégorie pour plus de détails.
Liste des opérateurs
Pour une description détaillée de chaque opérateur, cliquez sur le lien pour parcourir.
| Catégorie | Opérateur | Description |
|---|---|---|
| Transformation | map | Convertit chaque valeur |
| scan | Accumule les valeurs et produit des résultats intermédiaires | |
| reduce | Accumule toutes les valeurs et n'émet que le résultat final | |
| pairwise | Traite deux valeurs consécutives par paires | |
| groupBy | Regroupement des flux par clé | |
| mergeMap | Exécution parallèle du traitement asynchrone | |
| switchMap | Exécuter uniquement le dernier traitement asynchrone (annuler les traitements plus anciens) | |
| concatMap | Exécution séquentielle des processus asynchrones | |
| exhaustMap | Ignorer les nouveaux processus pendant l'exécution | |
| expand | Développer les résultats de manière récursive | |
| buffer | Publier des valeurs dans un tableau | |
| bufferTime | Publier des valeurs à des intervalles de temps spécifiés | |
| bufferCount | Publier des valeurs par lots d'un nombre spécifié de valeurs | |
| bufferWhen | Mise en mémoire tampon avec conditions de fin contrôlées dynamiquement | |
| bufferToggle | Mise en mémoire tampon avec contrôle indépendant du début et de la fin | |
| Filtrage | filter | Ne laisser passer que les valeurs qui correspondent à la condition |
| take | N'obtenir que les N premières valeurs | |
| takeLast | Obtenir les N dernières valeurs | |
| takeWhile | Obtenir les valeurs lorsque la condition est remplie | |
| skip | Sauter les N premières valeurs | |
| skipLast | Sauter les N dernières valeurs | |
| skipWhile | Sauter les valeurs pendant que la condition est remplie | |
| skipUntil | Sauter les valeurs jusqu'à ce qu'un autre Observable se déclenche | |
| first | Obtenir la première valeur ou la première valeur satisfaisant une condition | |
| last | Obtenir la dernière valeur ou la dernière valeur satisfaisant la condition | |
| elementAt | Obtenir la valeur à un index donné | |
| find | Trouver la première valeur qui remplit une condition | |
| findIndex | Obtenir l'indice de la première valeur qui satisfait la condition | |
| debounceTime | Émettre la dernière valeur si aucune entrée n'est reçue pendant un certain temps | |
| throttleTime | Passer la première valeur et ignorer la nouvelle valeur pendant le temps spécifié | |
| auditTime | Délivrer la dernière valeur après le délai spécifié | |
| audit | Émettre la dernière valeur avec un Observable personnalisé pour contrôler la période | |
| sampleTime | Échantillonner la dernière valeur à l'intervalle de temps spécifié | |
| ignoreElements | Ignorer toutes les valeurs et ne transmettre que les achèvements/erreurs | |
| distinct | Supprimer toutes les valeurs en double (ne transmettre que les valeurs uniques) | |
| distinctUntilChanged | Supprimer les valeurs dupliquées consécutives | |
| distinctUntilKeyChanged | Détecter uniquement les changements de propriétés spécifiques d'un objet | |
| Combinaison (Pipeable) | concatWith | Rejoindre d'autres Observables dans la séquence après achèvement |
| mergeWith | Combiner plusieurs Observables simultanément | |
| combineLatestWith | Combiner la dernière valeur de chaque Observable | |
| zipWith | Associer les valeurs dans l'ordre correspondant | |
| raceWith | Adopter uniquement le premier Observable qui se déclenche | |
| withLatestFrom | Ajouter les autres valeurs les plus récentes au flux principal | |
| mergeAll | Aplatir les Observables d'ordre supérieur en parallèle | |
| concatAll | Aplatir les Observables d'ordre supérieur dans l'ordre | |
| switchAll | Passer à l'Observable d'ordre supérieur le plus récent | |
| exhaustAll | Ignorer le nouvel Observable d'ordre supérieur pendant l'exécution | |
| combineLatestAll | Combine les dernières valeurs de tous les Observables internes | |
| zipAll | Associe les valeurs correspondantes de chaque Observable interne | |
| Utilitaire | tap | Effectuer des effets de bord (par exemple, sortie d'un journal) |
| finalize | Effectuer un post-traitement en cas d'achèvement ou d'erreur | |
| delay | Retarder toutes les valeurs pendant une durée déterminée | |
| delayWhen | Retarder chaque valeur dynamiquement avec un Observable séparé | |
| timeout | Émettre une erreur si une valeur n'arrive pas dans un délai spécifié | |
| takeUntil | Récupérer les valeurs jusqu'à ce qu'un autre Observable émette une valeur | |
| retry | Réessayer jusqu'à un nombre spécifié de fois en cas d'erreur | |
| repeat | Répéter un nombre spécifié de fois après achèvement | |
| startWith | Ajoute une valeur initiale au début du flux | |
| toArray | Publier toutes les valeurs dans un tableau | |
| materialize | Convertit une notification en un objet Notification | |
| dematerialize | Reconvertir l'objet Notification en notification normale | |
| observeOn | Utiliser le scheduler pour contrôler le moment où les valeurs sont publiées | |
| subscribeOn | Utiliser le scheduler pour contrôler le moment où l'on commence à s'abonner | |
| timestamp | Ajouter un horodatage à chaque valeur | |
| Conditionnel | defaultIfEmpty | Si aucune valeur n'est disponible, émettre une valeur par défaut |
| every | Déterminer si toutes les valeurs satisfont à la condition | |
| isEmpty | Détermine si aucune valeur n'a été émise | |
| Gestion des erreurs | catchError | Attraper les erreurs et effectuer un traitement de secours |
| retry | Réessayer un certain nombre de fois en cas d'erreur | |
| retryWhen | Réessayer avec des conditions personnalisées | |
| Multidiffusion | share | Partage de l'Observable entre plusieurs abonnés |
| shareReplay | Mettre en cache les N dernières valeurs et les rediffuser aux nouveaux abonnés |