ビューの管理とサーバーの対話とデータ解析を管理するサービスを処理するコンポーネントがあります。角2 - 共有可観測性 - 2回目のサブスクライブエラーコールバック失敗
サービスpostFormメソッドは、コンポーネントに共有オブザーバブルを返します。 サービスがサービスをサブスクライブし、コンポーネントがサービスを提供します。
成功した場合、サービスコールバックメソッドはいくつかのデータを処理します また、成功または失敗時に、コンポーネントコールバックはビュー内のフィードバックを更新します。
問題:コンポーネントのエラーコールバックは、サービスのサブスクライブ関数にエラーコールバックが含まれている場合にのみ発生します。
私は悪いパターンを使用していますか? なぜコンポーネント1を動作させるために両方のサブスクライブ関数でエラーコールバックが必要なのですか?
おかげ
コンポーネント:
onSubmit(): void {
this.service.postForm().subscribe(
() => this.onSuccessfulPost(),
()=>this.onErrorPost()
);
}
はサービス:
postForm() {
//Code here assembles url and body variables
this.currentObservable = this.http.post(url, body)
.map((response: Response) => this.parseResponse(response))
.catch((err: Response) => this.onHttpError(err)).share();
this.currentObservable.subscribe(
(response: any) => this.onSuccessfulPost(response),
() => {return} //WITHOUT THIS LINE COMPONENT CALL FAILS
);
return this.currentObservable;
}
だけのノート... RxJx 5.5のように、* *やる今*タップ*です。 – DeborahK
@DeborahKああ良い洞察力。これはドット演算子に当てはまりますか?またはlettable演算子だけ? – LLai
https://github.com/ReactiveX/rxjs/blob/master/doc/lettable-operators.mdのlettableバージョンですが、私たちはその方向にすべて動いていると仮定しましたか? – DeborahK