2017-02-19 4 views
7

Donc, une question rapide. J'utilise RxJS 5 depuis quelques mois maintenant, et j'ai rencontré un peu de comportement que je ne comprends pas vraiment, car je n'ai pas été capable de le chercher n'importe où.RXJS 5 .subscribe() sans arguments

Je suis dans une situation où abonner à une chaîne observable avec simplement .subscribe(); ne déclenche pas l'observable.

Cependant, si j'ajoute un rappel OnNext (vide ou non), les déclencheurs observables, et les processus de la chaîne: .subscribe(() => {});

Quelqu'un peut-il expliquer pourquoi ce comportement se produit?

EDIT2 - Suppression exemple hors de propos

+0

appel à '.subscribe()' sans argument devrait fonctionner. Êtes-vous capable de poster un exemple plus complet? – Ashley

+0

Pouvez-vous faire une démo? Tous les paramètres de 'subscribe()' sont optionnels et fonctionnent sans aucun argument. – martin

+0

Vérifié la même fonction dans l'exemple ci-dessus (maintenant sur RxJS 5.2.0, et Ionique 2.2.0), et il traite maintenant sans un corps. Je laisserai ce fil ouvert, au cas où le problème reviendrait. – DarkNeuron

Répondre

3

.subscribe() ne fait nécessite pas de paramètres, il suffit de créer un emptyObserver si aucune est donnée, qui devrait fonctionner tout aussi bien.

Il est cependant possible que certaines versions de la version 5.0.0-bêta contiennent des problèmes. Si vous utilisez l'une de ces versions, vous devriez mettre à jour vers une version plus stable.

const obs$ = Rx.Observable.of("Foo") 
 
    .do(() => console.log("triggered!")); 
 
    
 
obs$.subscribe(); 
 
obs$.subscribe();
<script src="https://unpkg.com/[email protected]/bundles/Rx.min.js"></script>

+1

Je suis aussi sur RxJS 5.1.1. Je vais essayer de poster un exemple de mon code. – DarkNeuron