使用BehaviorSubject从对象数组中获取键/值数据

时间:2018-03-14 15:34:19

标签: observable behaviorsubject

我见过人们建议使用BehaviorSubject来获取getValue()的当前值。然而,当我在我的对象数组中使用它时,所有获得控制台记录的是“Observable {_isScalar:false,source:Observable,operator:MapOperator}”,下拉箭头指向除了我需要的数据之外的所有内容。我觉得我错过了一些东西,但在寻找了几个小时后,我仍然迷失了。我错过了什么?

示例代码:

defaultData = this.http.get(this.dataUrl);
defaultProducts = new BehaviorSubject<any>(this.defaultData);
products = this.defaultProducts.asObservable();

getData() {
    let test = this.defaultProducts.getValue();
    console.log(test);
    return this.http.get(this.dataUrl);
}

1 个答案:

答案 0 :(得分:0)

我看到这篇文章关于使用RXJS从可观察量中提取值。我仍然想弄明白。

 canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean> | boolean {

      return this.auth.user
           .take(1)
           .map(user => !!user)
           .do(loggedIn => {
             if (!loggedIn) {
               console.log('access denied')
               this.router.navigate(['/login']);
             }
         })

  }
}