Observable Finalement sur Subscribe

Selon cet article , la fonction onComplete et onError de l’ subscribe s’excluent mutuellement.

onError onComplete événements onError ou onComplete se déclencheront dans mon subscribe .
J’ai un bloc logique qui doit être exécuté, que je reçoive une erreur ou que je finisse avec succès mes informations.

J’ai recherché quelque chose comme finally en python , mais tout ce que j’ai trouvé est finally ce qui doit être attaché à l’observable que je crée.

Mais je veux faire cette logique seulement lorsque je suis abonné, et après la fin du stream, avec ou sans erreur.

Des idées?

Mise à jour pour RxJS 6 : depuis RxJS 6, cet opérateur a été renommé pour finalize() .

Je pense finally() que l’opérateur finally() est correct. Vous dites:

faire cette logique que lorsque je suis abonné, et après la fin du stream

ce qui n’est pas un problème je pense. Vous pouvez avoir une seule source et utiliser finally() avant de vous y abonner si vous le souhaitez. De cette façon, vous n’êtes pas obligé de toujours utiliser finally() :

 let source = Observable.create(observer => { observer.next(1); observer.error('error message'); observer.next(3); observer.complete(); }).publish(); source .finally(() => console.log('Finally callback')) .subscribe( value => console.log('#1 Next:', value), error => console.log('#1 Error:', error), () => console.log('#1 Complete') ); source .subscribe( value => console.log('#2 Next:', value), error => console.log('#2 Error:', error), () => console.log('#2 Complete') ); source.connect(); 

Cela imprime à la console:

 #1 Next: 1 #2 Next: 1 #1 Error: error message Finally callback #2 Error: error message