Ionic 无法理解RxJS筛选器语法

lskq00tm  于 2022-12-25  发布在  Ionic
关注(0)|答案(1)|浏览(149)

我正在尝试理解一个Ionic/Angular项目中的应用程序,其中有一个过滤表达式:

private userId$ = this.authService.currentUserAuth$.pipe(
    filter(user => !!user),
    map((user) => user.uid)
  );

authserviceAngularFireAuth类型,userfirebase.user类型。我无法理解的是过滤表达式user => !!user。我发现!!会强制变量为布尔值,但在上下文中对我来说没有任何意义。有人能帮忙吗?

c9x0cxw0

c9x0cxw01#

filter接受返回布尔值的 predicate 函数。user => !!user在任何JavaScript上下文中都表示“给定参数user(这是您的rxjs pipe中的值),这是真实类型吗?”其中“真实”表示不是undefinednullfalse0的内容(任何类型)、NaN或空字符串。
如果user是这些值中的任何一个(可能是来自auth服务的nullundefined),它将不会执行链中的下一步,您的案例将尝试从map中提取uuid

相关问题