【问题标题】:How to combine multiple typed Observables into one如何将多个类型化的 Observable 合并为一个
【发布时间】:2017-09-28 13:50:50
【问题描述】:

我有一个这样的 Observable 数组(Typescript):

let observables: Observable<string | string[]>[] = ...

如您所见,这个数组中的 observable 可以(一次)发出单个字符串或字符串数​​组。每个可观察对象都可以多次发出值(字符串或字符串数​​组)。

我希望得到这种类型的 observable:

let resultObservable: Observable<string> = observables.operator(...)

1.) 何来这样做?我应该使用什么运算符? 2.) 当我想要一个结果 observable 只发出一个值时,我应该使用什么运算符,它是一个字符串数组:

let resultObservable: Observable<string[]> = observable.operator(...)

编辑:我准备了一个 plnkr 来展示这个问题:https://next.plnkr.co/edit/GLwtqIhPiyH3ztaw

【问题讨论】:

  • 那你想要哪一个? stringstring[]?
  • 嗨@Andy 为什么你删除了我的有效回复?

标签: javascript rxjs


【解决方案1】:

只有字符串值

arrayOrNot.flatMap(data=>data.isArray()?
Observable.from(data):Observable.of(data)).subscribe()

只有真正依赖于何时完成发射的字符串数组

【讨论】:

【解决方案2】:

也许用 reduce 和 map ?

example on plnkr.co

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 2011-10-29
    • 2017-12-11
    • 2020-11-03
    • 2019-10-09
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多