在使用RXJS pluck之前如何检查属性是否存在?

问题描述

如果“ canLogin”属性存在,则以下代码可以正常工作。

this.canLogin$ = this.permissions$.pipe(pluck('canLogin')) || of(false);

如果该属性不存在,则会出现此错误

错误TypeError:无法读取未定义的属性'canLogin'

如果该属性不存在,如何检查null或返回null?

我尝试了类似的方法,但是它不起作用

{{1}}

解决方法

那不是因为该属性不存在。该错误是因为permissions$发出undefined且没有任何属性。

因此,您可以执行以下操作:

this.canLogin$ = this.permissions$
  .pipe(
    map(obj => obj || {}),pluck('canLogin'),);