最近、.pipe()
内ではなく.subscribe()
内では値を返すことができることに気付きました。
これら2つの方法の違いは何ですか?
たとえば、この関数がある場合、「deposit」と呼びましょう。これを行うと、口座残高を返すことになります。
deposit(account, amount){
return this.http.get('url')
.subscribe(res => {
return res;
}
}
オブザーバブルを返し、私がこれを行うと:
deposit(account, amount){
return this.http.get('url')
.pipe(
map(res => {
return res;
});
);
}
期待どおりに口座残高を返します。
なぜ?
pipe
メソッドは、オブザーバブルオペレーターをチェーンするためのものであり、subscribe
は、オブザーバブルをアクティブにし、発行された値をリッスンするためのものです。
webpackが未使用の演算子を最終的なJavaScriptバンドルから削除できるようにするために、pipe
メソッドが追加されました。これにより、小さなファイルを簡単に作成できます。
たとえば、この関数がある場合、「deposit」と呼びましょう。これを行うと、口座残高を返すことになります。
それが返すものではありません。 Subscription
を呼び出したときに作成されたSubscribe
オブジェクトを返します。
期待どおりに口座残高を返します。
それが返すものではありません。 Observable
演算子を使用するmap
を返します。あなたの例のマップ演算子は何もしません。