2017-06-19 4 views
2

Je commence actuellement avec des observables dans JS, et j'ai atteint un barrage total avec ce qui semble être quelque chose de vraiment basique. J'ai créé l'exemple super simple ci-dessous, qui, bien qu'inutile en soi, me semble que cela devrait fonctionner, mais ce n'est pas le cas. la dernière ligne renvoie une erreur.Rx.js unsuscribe donner gerror

const obs1 = Rx.Observable.timer(2000) 
    .map(() => {return Math.random() > 0.5}); 

const subscription = obs1.subscribe(
    (v) => { 
     console.log('hello world: ', v) 
    }); 

subscription.unsubscribe(); 

L'erreur est

TypeError: subscription.unsubscribe is not a function

Ma question est fondamentalement, pourquoi ne puis-je résilier votre abonnement de l'observateur ci-dessus? Ou comment devrais-je me désabonner?

+4

Quelle erreur faut-il jeter? – cgTag

+0

Il lancait 'Uncaught TypeError: abonnement.unsubscribe n'est pas une fonction' –

+0

'console.log (abonnement)' vous aurait sauvé beaucoup de temps. – cgTag

Répondre

3

Vous utilisez Rx v4.x, n'est-ce pas? Dans ce cas, la méthode est dispose pas unsubscribe

subscription.dispose(); 

Vos deux options sont soit:

  • mise à niveau rxjs v5;
  • remplacer unsubscribe avec dispose.

Si vous codeBase a pas de code mush encore, je vous suggère de mise à niveau vers v5 :)

+0

Considérant qu'il mentionne rx.js, alors oui, il utilise RxJs 4 –

+0

@ Jota.Toledo Belle prise en effet, mais toujours pas vraiment assez pour être sûr :) – atomrc

+0

Oui, mais l'erreur le confirme: p –