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作为参数,我可以改变构造的方式。
答案 0 :(得分: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)
);