Skip to content
On this page

Quand faut il de désinscrire à un observable ?

Il est généralement recommandé de désinscrire d'un observable lorsque vous n'avez plus besoin de recevoir les valeurs produites par celui-ci. Cela peut être utile pour libérer des ressources et éviter les fuites de mémoire dans votre application.

En général, vous devriez désinscrire d'un observable lorsque :

  • Vous avez terminé de traiter les valeurs produites par l'observable et que vous n'avez plus besoin de les recevoir.
  • Vous changez de page ou de composant dans une application, et que vous n'avez plus besoin de recevoir les valeurs produites par l'observable.

Pour désinscrire d'un observable, vous pouvez utiliser la méthode unsubscribe() de l'objet de souscription retourné par la méthode subscribe() de l'observable. Voici un exemple :

Notez que si l'observable a été completé ou a émis une erreur, vous n'avez psa besoin de vous désinscrire car RxJS le fait automatiquement

Comment se désinscrire ?

Pour désinscrire d'un observable, vous pouvez utiliser la méthode unsubscribe() de l'objet de souscription retourné par la méthode subscribe() de l'observable. Voici un exemple :

js
const observable = new Observable(observer => {
  observer.next(1);
  observer.next(2);
  observer.next(3);
});

const subscription = observable.subscribe(console.log);

// Plus tard, désinscrire de l'observable
subscription.unsubscribe();

Dans cet exemple, nous créons un observable qui produit les valeurs 1, 2 et 3. Nous nous inscrivons à l'observable pour recevoir ces valeurs, puis nous désinscrivons plus tard en utilisant la méthode unsubscribe() de l'objet de souscription. Cela signifie que les valeurs suivantes ne seront pas produites et ne seront pas affichées dans la console.

WARNING

Il est important de noter que désinscrire d'un observable ne signifie pas que l'observable sera arrêté ou supprimé. Cela signifie simplement que vous ne recevrez plus les valeurs produites par l'observable. Si vous souhaitez arrêter complètement l'observable, vous devrez utiliser d'autres méthodes ou opérateurs RxJS pour le faire.