从HTTP Observable响应获取单个属性

时间:2018-07-04 08:04:23

标签: angular rxjs

对于您的RxJS专业人员来说,这应该很容易。

我正在使用Angular 5。

我想做这样的事情:

  this.allFilters = this.http.get(path).pipe(
    map((response) => response.forms.sim_filter.schema.properties))

响应是沼泽标准对象,而不是数组,因此我不确定映射是否正确。

因此,基本上,我只对深度嵌套的属性感兴趣,并且只希望在我订阅this.allFilters

时可以访问该属性

我该怎么做?

1 个答案:

答案 0 :(得分:1)

这与Rx无关,更多是关于JS的问题。

allFilters是您在代码中的可观察对象,是通过HTTP调用分配的。

订阅后,您将收到管道map中返回的内容:

this.allFilters = this.http.get(path).pipe(
  map((response) => response.forms.sim_filter.schema.properties))

this.allFilters.subscribe (res => { /* res = originalResponse.forms.sim_filter.schema.properties */});

您可以使用map,因为它与JS对象/数组无关,但与RxJS itslef(这是Rx运算符)无关。这本可以称为RxJSmap,这只是一个想要的巧合。

除此之外,我不明白您的问题是什么。什么不起作用?您期待什么?你能解释更多吗?