Lorsque vous avez besoin de partager l'exécution observable, vous pouvez utiliser l'opérateur de partage qui exécute les méthodes publish() et refCount(), mais lorsque vous travaillez avec Subjects, comment puis-je utiliser refCount()?

new Subject().refCount()
1
undefined 14 janv. 2017 à 19:47

2 réponses

Meilleure réponse

C'est parce que refCount() n'est pas comme les autres opérateurs.

Lorsque vous utilisez l'opérateur publish(), il renvoie une instance de ConnectableObservable. refCount() est un opérateur spécifique uniquement à { {X3}} et vous ne le trouverez dans aucun autre Observable.

Une bonne question est de savoir ce que vous voulez réaliser avec refCount() et Subject car refCount() n'a vraiment de sens que lorsque vous souhaitez vous abonner / vous désabonner d'une source Observable (je ne sais pas ce que vous cas d'utilisation particulier est).

Quoi qu'il en soit, vous pouvez toujours utiliser (new Subject()).publish().refCount() si cela a du sens.

2
martin 14 janv. 2017 à 17:08

Un Subject est déjà chaud , ce qui signifie qu'il n'est pas nécessaire d'utiliser en plus refCount ou publish ou autre.

Ceci est un extrait de la documentation:

De cette manière, le sujet peut servir de proxy pour un groupe d'abonnés et une source. [...] En outre, vous pouvez utiliser des sujets pour diffuser des données à plusieurs abonnés .

1
olsn 14 janv. 2017 à 17:00