私はHttpを拡張するAuthHttpServiceを持っています。要求が行われるたびにObservableが返されますが、HTTPService自体の内部で何らかのアクションを取ることも望みます。それをどうやって行うことができますか?例えばObservableを返す間に返されるObservableを購読する方法
:
get(url: string) {
this.pendingRequests++;
return this.http.get(this.config.apiUrl + '' + url, { headers: this.getHeaders(this.config.apiUrl + url) })
.subscribe(() => {
if (this.pendingRequests > 0) {
this.pendingRequests--;
}
});
}
私はロードスピナーを表示するthis.pendingRequests > 0
を使用しています。 authHttp.get()と呼ばれるサービスに実際の応答を戻したいのですが、authHttpでpendingRequests
を単独で管理したいのですが、どうすれば購読しなくても何かできますか?このメソッドを呼び出す私のサービスはProperty 'map' does not exist on type 'Subscription'
という意味では不平を言っていますが、それ以外の方法はわかりません。
コンポーネントのサービスがObservableを期待している代わりにサブスクリプションを取得するAuthHttp.getを呼び出しているときにエラーが発生します。私は、AuthHttpが購読するのにまだサブスクリプションを返す方法があるのだろうかと思っています。
なぜmyCall = this.http.get(this.config.apiUrl + '' + url、{ヘッダー:this.config.apiUrl + url})) 'を呼び出すと' myCall 'そしてマップを行い、それを返しますか? – silentsod
'switchMap'を試しましたか? 'switchMap'を使うと、観測可能なものから別のものに切り替えることができ、サブスクライバは何もする必要はありません。もっと見ることができますhttps://www.learnrxjs.io/operators/transformation/switchmap.html – vinagreti
@silentsod実際にうまくいきました。 –