Skip to content
On this page

A quoi sert flatMap dans RxJS ?

Le flatMap operator dans RxJS permet de projeter chaque valeur d'une séquence dans un nouvel observable, puis de regrouper les valeurs émises par ces observables en une seule séquence. Cela peut être utile pour traiter des données asynchrones dans un flux de données et pour éviter les séquences imbriquées (ou "pliées") dans les résultats.

Par exemple, si vous aviez un observable qui émet des objets qui contiennent chacun un autre observable, vous pourriez utiliser le flatMap operator pour "déplier" ces séquences imbriquées et émettre les valeurs de l'observable interne en tant que valeurs simples dans la séquence résultante, comme ceci :

js
data$.pipe(
  flatMap(value => value.innerObservable)
)

Dans cet exemple, la fonction passée au flatMap operator prend chaque valeur émise par l'observable data$ et retourne l'observable interne contenu dans cette valeur. Le flatMap operator émet alors chaque valeur de l'observable interne comme une valeur simple dans la séquence résultante, évitant ainsi les séquences imbriquées dans les résultats.

Le flatMap operator peut être utilisé dans de nombreux cas pour transformer les données d'une séquence en une autre valeur ou en une autre séquence de données, en utilisant une fonction de projection fournie.