Используйте карту и switchMap вместе - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть наблюдаемая с объектом, содержащая обычное поле и другие наблюдаемые.Я хочу получить последовательность, содержащую это поле и значение соответствующей наблюдаемой стрельбы вместе с внутренней наблюдаемой.

Например:

var smth$ = interval(1000).pipe(
  take(3),
  map(i => ({
    id: String.fromCharCode('A'.charCodeAt(0) + i),
    value$: interval(300).pipe(
      take(10),
      map(j => i*10 + j)
    )
  }))
)

Я могу легко получить последовательность поля id через map:

smth$.pipe(
  map(x => x.id)
)

imagemap">

Также я могу получить последовательность value s через switchMap:

smth$.pipe(
  switchMap(x => x.value$)
)

imageswitchMap">

Но как я могу получить последовательность пар с id и value?

desired sequence

Пример запуска: https://rxviz.com/v/R85xKw6J

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Плоское решение: https://rxviz.com/v/j8ArKWEo

smth$.pipe(
  switchMap(x => x.value$, (x, d) => x.id + d)
)
0 голосов
/ 21 сентября 2018

Можно попробовать

smth$.pipe(
    switchMap(x => x.value$.pipe(
        map(d => x.id + d)
    ))
)
...