RxJS 如何将 Observable<string[]> 转换为 Observable<string>

3
RxJS 5.5.6。我正在尝试将一个Observable<string[]>转换为Observable<string>。 我不确定mergeAll操作符是否是我要找的。
const o1: Observable<string[]> = of(['a', 'b', 'c']);
const o2: Observable<string> = o1.pipe(
  mergeAll()
);

Typescript将返回此错误:

Type 'Observable<string | string[]>' is not assignable to type 'Observable<string>'.
  Type 'string | string[]' is not assignable to type 'string'.
    Type 'string[]' is not assignable to type 'string'.

我接收Observable作为参数,可以改变它的构造方式。

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
4
看起来您遇到了一个已经被报告的RxJS问题,请参见https://github.com/ReactiveX/rxjs/issues/2759,甚至更近期的https://github.com/ReactiveX/rxjs/issues/3290。 从评论中可以看出,这个问题直到RxJS 6才会被修复。 但是,您总是可以使用mergeMap(o => o)/concatMap(o => o)代替mergeAll()/concatAll()。 例如:
const o1: Observable<string[]> = of(['a', 'b', 'c']);
const o2: Observable<string> = o1.pipe(
  mergeMap(o => o)
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,