2017-09-12 12 views
-2

rxjsでは、http-getを呼び出すと、私はシンプルなjavascriptのPromiseタイプではなく、観測可能なタイプを受け入れます。rxJS - 'Promise.done'の代わりになるもの

今、私はpromise.doneの代わりに何かを検索しますか?

Observale.mapを使用していることがわかりましたが、マップマップは複数のhttp呼び出しには必要ありません。

これまでの内容は?

+0

あなたの観測で '.toPromise()'を呼び出すだけで、既に知っている関数を使うことができます。 'import 'rxjs/add/operator/toPromise'を使わなければならないかもしれません;' –

+0

'.subscribe(...)'は通常チェーンの終わりです。 http://reactivex.io/rxjs/manual/tutorial.htmlを参照してください。 – jonrsharpe

+0

'Observable'や' .toPromise() 'では' .subscribe() 'を使いますが、標準の' .done() 'には' .done() 'がないので、約束する。私はあなたが壊れた 'jQuery'実装に慣れていると思います。 – Duncan

答えて

1

リクエストメソッド(get/post/etcなど)に登録するだけです。あなたはtoPromise()を使う必要はありません。AngularがObservablesとうまく機能し、Promisesよりもはるかに強力であるため、私はtoPromise()を使う必要はありません。

// Make the HTTP request: 
this.http.get('/api/items').subscribe(data => { 
    // Handle the result from the response. 
    this.results = data; 
}); 

https://angular.io/guide/http

彼らはオブザーバーと仕上がりに.complete()メソッドを呼び出して、これらの観測から退会を心配しないでください。

HttpClientから返されたObservableはすべて冷たく、あなたが.subscribe()するまでリクエストは行われません。

switchMapと地図が混乱しているかもしれないと思います。地図はストリーム内の放出されたアイテムを変換するためのものです。switchMapは一般的に観測値の連鎖によく使用されます。 http://reactivex.io/documentation/operators/map.html

関連する問題