Получить одно свойство из ответа HTTP Observable - PullRequest
0 голосов
/ 04 июля 2018

Это должно быть легко для вас, профессионалы RxJS.

Я использую Angular 5.

Я хочу сделать что-то вроде этого:

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

Ответ - стандартный объект болота, а не массив, поэтому я не уверен, что карта верна.

Так что, в принципе, меня интересует только глубоко вложенное свойство, и я хочу иметь к нему доступ только при подписке на this.allFilters

Как мне это сделать, пожалуйста?

1 Ответ

0 голосов
/ 04 июля 2018

Это не связано с 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 Object / Array, а с RxJS самой (это оператор Rx). Это можно было бы назвать RxJSmap, это просто желаемое совпадение.

Кроме этого, я не понимаю, каков ваш вопрос. Что не работает? Что вы ожидаете? Не могли бы вы объяснить немного больше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...