当过滤器通过管道时会发生什么?

What happens when filter is passed in pipe?

我想了解为什么以下订阅不起作用:

  isLoggedIn1$:Observable<boolean> = of(false) // on subscribing it I get value as false

  isLoggedIn2$:Observable<boolean> = of(false).pipe(filter(value => Boolean(value))) // this one is not giving any value even it looks like subscribe is not getting called for this

是否有针对此特定行为的文档?

据我了解,它的处理方式等同于 EMPTY。但是为什么我没有收到第二个类型错误。

filter 运算符根据给定的谓词过滤值。如果满足 filter 指定的条件,则该值将传递给订阅者,否则我们在屏幕上看不到任何内容。

换行

isLoggedIn2$:Observable<boolean> = of(false).pipe(filter(value => Boolean(value)))

此处的谓词只允许那些为真的值进一步向下传递管道

value => Boolean(value) 

如果你想打印false你必须修改过滤条件为

value => Boolean(value) === false

有关过滤器运算符的更多信息 - https://www.learnrxjs.io/learn-rxjs/operators/filtering/filter