【问题标题】:rxjs TypeScript filter supportrxjs TypeScript 过滤器支持
【发布时间】:2019-11-22 03:47:57
【问题描述】:

我正在尝试使用 rxjs 过滤可观察的数字数组。但是,作为类型提示,TypeScript 告诉我过滤器运算符得到一个number[] 数组,而不是number,我认为这是不正确的。根据the docs,rxjs 过滤运算符谓词应该接受一个项目,而不是它们的数组。这是 TypeScript 类型中的错误,还是我下面的示例中有错误?

【问题讨论】:

    标签: typescript rxjs


    【解决方案1】:

    filter() 运算符在这里是正确的。问题是因为您将数组传递给of(),这将创建Observable<number[]>或者您需要使用from(),这将创建Observable<number>


    *在作者提问后编辑

    因此更新的示例将是:

    from([1, 2, 3, 4, 5]).pipe(filter(x => x > 3)).subscribe(x => console.log(x));

    这将打印:

    4

    5

    【讨论】:

    • 感谢您的解释!所以我猜一个 map 运算符与一个纯 JS 过滤器相结合是我正在寻找的更多?
    【解决方案2】:

    如果您想过滤数组,我建议:

    of([1,2,3,4,5]).pipe(map(array => array.filter(element => element < 3)))
    

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 2011-04-14
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多