2016-08-08 13 views
2

を購読RxJx助けが必要、と私はデータをキャッチしていないよ場合は、しかし、私は最初が変更される場合がありますは、私は理解がこれは私が今やっているものです構文

this.dataService.subscribe(
    data => this.data = data, 
    error => alert('Something went wrong'), 
    () => this.doSomethingOnCompletion()); 

より良い方法があるのだろうか

() => null, 

documentation for rxjs 4.xは、この質問に十分に答えることはできません。 Version 5.xはさらに説明します。

したがって、判決は何ですか?起こることを引き起こす以上のことをする必要があるとき、次の間違っていますか?

this.dataService.subscribe(
    () => null, 
    error => alert('Boom.'), 
    () => this.doSomethingOnCompletion()); 

完了時に何かをする必要がなければ、その部分を残しておきます。エラーだけをチェックしたいのであれば何もしませんか?

答えて

4

RxJS 4 errorsが必要な場合は、エラーのみを処理するsubscribeOnErrorメソッドを使用できます。

subscribeメソッドも使用できますが、不要なハンドラーにはnull値を渡すだけでよいので、自分でnoopを渡す必要はありません。

this.dataService.subscribe(
    null, 
    error => alert('Something went wrong')); 

RxJSは、あなたが渡すことができ、5 PartialObserverいわゆる:、正直に言うと、私は見ているから理解していないものの、

this.dataService.subscribe({ 
    error: error => alert('Boom.'), 
    complete:() => this.doSomethingOnCompletion() 
}) 
+0

これは、PartialObserverは、まさに私が探していたものですソースコードでObserver.tsがどのキー:値のペアがどのインターフェイスに行くのかを理解する方法を説明します。私は今朝これと一緒に遊びます。 :) – wolfhoundjesse

+0

それは私が物事をしてきた方法がちょうどいいように見えるので。オプション引数を持つ関数を呼び出すのと同じです。 2番目または3番目のオプション引数が必要な場合は、最初の引数にnullを渡す必要があります。 Angular 2では、Observableはhttpサービスから戻ってきますが、典型的なものではないため、PartialObserverを単独で使用するわけではありません。 ガイダンスをありがとう! – wolfhoundjesse

関連する問題