在lettable运算符之前,代码如下所示:
get someData$(): Observable<Data> {
return this.dataService.higherOrderDataStream
.mergeAll()
.map(...);
}
重构使用pipe
,我收到类型错误,主要是说Observable<Observable<Data>>
无法分配给Observable<Data>
类型:
get someData$(): Observable<Data> {
return this.dataService.higherOrderDataStream
.pipe(
mergeAll(),
map(...)
);
}
但以下工作正常(我假设不应该混合lettable和链式运算符):
get someData$(): Observable<Data> {
return this.dataService.higherOrderDataStream
.mergeAll()
.pipe(
map(...)
);
}
我应该使用不同的mergeAll
吗?我正在使用rxjs/operators
之前使用rxjs/add/operator/mergeAll
的地方。我认为这两个实现是等价的。
这是一个错误还是我错误地使用了新的mergeAll
?
答案 0 :(得分:2)
这是RxJS 5.5中已知的错误up_timer
和mergeAll
。它将在RxJS 6中修复。
有关详细信息,请参阅:https://github.com/ReactiveX/rxjs/issues/2759
几天前修复了合并:https://github.com/ReactiveX/rxjs/pull/3321
现在最好使用concatAll
或mergeMap(o => o)
。