为了账号安全,请及时绑定邮箱和手机立即绑定

'!!user' 是干什么用的?这条线的结果是什么?

'!!user' 是干什么用的?这条线的结果是什么?

三国纷争 2021-06-28 17:53:55
我想在我的应用程序中创建角度路线守卫。我找到了这段代码,但不明白为什么我们映射user到!!user. map(user => !!user)线的目的是什么?canActivate(    next: ActivatedRouteSnapshot,    state: RouterStateSnapshot): Observable<boolean> {      return this.auth.user.pipe()           take(1),           map(user => !!user),           tap(loggedIn => {             if (!loggedIn) {               console.log('access denied')               this.router.navigate(['/login']);             }         })    )
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

!! 是将某些内容转换为布尔值的常用方法。

通过!map()函数中两次应用 NOT 运算符 ( ) ,它将用户映射到一个布尔值,然后将loggedIn其用作tap()函数中使用的那个。

很可能用户应该是一个带有用户数据的对象(它有一个真实的值)。

我还假设如果您未登录,则用户将是nullor undefined(具有虚假值)。


查看完整回答
反对 回复 2021-07-08
  • 1 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信