【发布时间】:2019-10-28 03:41:52
【问题描述】:
我正在运行一个 Angular 8 应用程序,我收到一个错误,这似乎是 RxJS 中的一个主要错误,或者我遗漏了一些东西。
import { of } from 'rxjs';
import { switchMap } from 'rxjs/operators';
of(1,2,3)
.pipe(
switchMap((x) => of(x + 1))
)
现在我希望订阅者收到以下输出:
//2, 3, 4
但是,它输出的是我在 switchMap 操作中返回的实际 observable:
//Observable<number>, Observable<number>, Observable<number>
摘要
从本质上讲,switchMap 似乎返回了一个Observable<Observable<number>> 类型的值,而不仅仅是Observable<number>。
我不确定这是 TypeScript 还是 RxJS 错误,但似乎当我将 RxJS 恢复到 6.0.0 版本时,问题就消失了。
版本:
- Angular 8.0.0
- TypeScript 3.4.5
- RxJS 6.4.0
我刚刚测试过,flatMap 也发生了同样的事情
【问题讨论】:
-
我还注意到,如果我恢复到 RxJS 6.0.0,错误就会消失,而无需我更改应用程序中的任何其他代码。麻烦的是,Angular 8 依赖于 RxJS ^6.4
标签: typescript rxjs6 angular8 switchmap