最近、 内では値を返すことができるのに、 内では値を返すこと.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;
});
);
}
期待どおりに口座残高が返されます。
なぜ?
ベストアンサー1
メソッドpipe
は、オブザーバブル演算子を連鎖させるためのもので、 は、subscribe
オブザーバブルをアクティブにして、発行された値をリッスンするためのものです。
このpipe
メソッドは、ウェブパック最終的な JavaScript バンドルから未使用の演算子を削除します。これにより、より小さなファイルを作成しやすくなります。
たとえば、次のような関数があるとします。これを「deposit」と呼び、口座残高を返すとします。
deposit(account, amount){ return this.http.get('url') .subscribe(res => { return res; } }
観測可能なものを返す
返されるのはそれではありません。Subscription
を呼び出したときに作成されたオブジェクトを返しますSubscribe
。
そして私がこれをやると:
deposit(account, amount){ return this.http.get('url') .pipe( map(res => { return res; }); ); }
期待どおりに口座残高が返されます。
返されるのはそれではありません。演算子Observable
を使用する を返しますmap
。例の map 演算子は何も行いません。