RXJS オブザーバブルのメソッド .pipe() と .subscribe() の違い 質問する

RXJS オブザーバブルのメソッド .pipe() と .subscribe() の違い 質問する

最近、 内では値を返すことができるのに、 内では値を返すこと.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 演算子は何も行いません。

おすすめ記事