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

我想在我的应用程序中创建角度路线守卫。我找到了这段代码,但不明白为什么我们映射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']);

             }

         })

    )


三国纷争
浏览 176回答 1
1回答

慕侠2389804

!!&nbsp;是将某些内容转换为布尔值的常用方法。通过!在map()函数中两次应用 NOT 运算符 (&nbsp;)&nbsp;,它将用户映射到一个布尔值,然后将loggedIn其用作tap()函数中使用的那个。很可能用户应该是一个带有用户数据的对象(它有一个真实的值)。我还假设如果您未登录,则用户将是nullor&nbsp;undefined(具有虚假值)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript