【问题标题】:RXJS v6.4 switchMap operator returns an Observable rather than the result (accordinng to TypeScript linter)RXJS v6.4 switchMap 操作符返回一个 Observable 而不是结果(根据 TypeScript linter)
【发布时间】: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&lt;Observable&lt;number&gt;&gt; 类型的值,而不仅仅是Observable&lt;number&gt;

我不确定这是 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


【解决方案1】:

不确定问题出在哪里,但我设法解决了。一定是以下步骤之一,但我不知道是哪一个:

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 2016-12-18
    • 2020-05-22
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多