Skip to content

Qu'est-ce qu'un flux ?

Définition d'un flux

Un "flux" fait référence à un flux de données qui se produit de manière séquentielle au fil du temps. Il peut être considéré comme une collection de données apparaissant l'une après l'autre dans un certain ordre.

Exemples de flux typiques dans la programmation traditionnelle

  • Données provenant de la lecture de fichiers (par exemple, ReadableStream dans Node.js)
  • Communications réseau (par exemple, réponses HTTP)
  • Entrées et événements de l'utilisateur (mouvements de la souris, clics, entrées au clavier)

Les flux dans RxJS

RxJS utilise Observable pour gérer les données qui se produisent dans le temps sous la forme d'un flux. Observable est un mécanisme permettant d'abstraire les données asynchrones, les données synchrones, les événements et le traitement temporel en tant que "flux".

Avantages de l'Observable

  • Peut être décrit de manière sûre pour les types (affinité TypeScript)
  • Expression déclarative du flux de données
  • La chaîne d'opérations par pipe() est possible
  • Peut s'abonner explicitement par subscribe()
  • Annulable par unsubscribe()

Comparaison avec les flux conventionnels

CaractéristiqueFlux conventionnelsRxJS Observable
CibleTendance à se limiter aux fichiers/réseaux, etc.Asynchrone/événement/changement d'état arbitraire
Gestion des événementsGéré par des écouteurs d'événements au cas par casStreaming avec fromEvent
AnnulationMéthodes différentesGestion unifiée avec unsubscribe()
Composition/ConversionImplémentation séparée avec du code procéduralDescription concise avec des opérateurs (map, filter, etc.)

Relation avec Observer & Subscription

  • Observable : Source de données (source de flux)
  • Observer : Récepteur de données (avec next, error, complete)
  • Subscription : Handle de contrôle pour l'abonnement (subscribe, unsubscribe, gestion des ressources)

Observable et Observer sont reliés par des callbacks et contrôlés par Subscription.

Diagramme relationnel de base

Résumé

Le concept de "flux", qui est au cœur de RxJS, est une arme puissante lorsqu'il s'agit de traitement asynchrone. Observable vous permet de gérer diverses sources de données de manière unifiée et de décrire les flux de données de manière déclarative et flexible.

Relation avec le traitement des événements

Dans RxJS, les événements DOM peuvent également être traités comme des flux en utilisant fromEvent. Le concept de flux devient plus clair en comparant les différences avec les écouteurs d'événements conventionnels.

TIP

Voir Streaming Events pour une comparaison du traitement traditionnel des événements et de RxJS avec du code réel.

Publié sous licence CC-BY-4.0.