如何使用HttpClient和redux在角度5中映射有效负载

时间:2017-12-21 20:01:18

标签: angular redux

如何使用HttpClient而不是Http在我的服务中执行此调用的等效操作? HttpClient没有map()调用。

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

1 个答案:

答案 0 :(得分:0)

.map实际上是Observable的方法,它来自RxJS(一个用于反应式编程的库,内部由Angular使用)。

由于HttpClient的{​​{1}}方法返回get,这意味着您可以对其应用Observable运算符。 map(与HttpClient中已弃用的Http不同)为您提取响应为JSON,因此您发布的代码段中唯一更改的是您应删除HttpModule 。它会因为从JSON字符串反序列化接收的对象而中断,因此不包含您尝试调用的自定义函数res => res.json()