javascript - map 和 switchMap 一起使用

标签 javascript rxjs operators

我有一个包含通常字段和其他可观察对象的可观察对象。我想获得包含此字段的序列以及相应的可观察值触发值以及内部可观察值。

例如:

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)
    )
  }))
)

我可以通过 map 轻松获取 id 字段的序列:

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

ids by <code>map</code>

我还可以通过 switchMap 获取 value 序列:

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

values by <code>switchMap</code>

但是我怎样才能获得同时具有 idvalue 的对序列?

desired sequence

可运行示例:https://rxviz.com/v/R85xKw6J

最佳答案

平面解:https://rxviz.com/v/j8ArKWEo

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

关于javascript - map 和 switchMap 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52449536/

相关文章:

javascript - 用javascript计算点返回一半

javascript - 将二维数组转换为对象

javascript - Angular2/Rxjs 嵌套映射,条件在 guard 中

haskell - 元组是否使用特殊语法?

python - 在什么情况下调用__rmul__?

javascript - jQuery .slideToggle() 也关闭其他选项卡

javascript - 应如何使用 Flow 定义具有可选属性的对象的联合?

javascript - 如何使用 Angular 在同一函数中进行多个 http 调用

javascript - 在另一个 Observable 完成后触发第二个表单提交点击

javascript - 变量运算符可能吗?