2017-12-21 25 views
-2

HttpClientをHttpの代わりに使用して私のサービスでこの呼び出しに相当する処理を行うにはどうすればよいですか? HttpClientはmap()呼び出しを行いません。HttpClientとreduxを使用して角度5のペイロードをマッピングする方法

loadObservations() { 
    this.http.get(`${BASE_URL}${1000}`) 
    .map(res => res.json()) 
    .map(payload => ({ type: 'ADD_OBSERVATIONS', payload })) 
    .subscribe(action => this.store.dispatch(action)); 
} 
+4

同様に、 '.map(res => res.json())'はもう必要ありませんが、HttpClientオブザーバブルはデフォルトでjson本体を出力します。これは文書化されています。なぜドキュメントを読まないのですか? https://angular.io/guide/http、https://angular.io/guide/http#typechecking-the-response –

答えて

0

.map実際RxJSから来Observableの方法(内部角度で使用される反応性・スタイルのプログラミングのためのライブラリ)です。

HttpClientgetメソッドはObservableを返しますので、map演算子を適用できます。 HttpClient(非推奨のHttpからHttpModule)は、JSONとしてレスポンスを抽出します。投稿したスニペットから変更する唯一のものは、res => res.json()を削除することです。受信したオブジェクトがJSON文字列から逆シリアル化されているため、呼び出ししようとしているカスタム関数json()が含まれていないため、破損します。

関連する問題