@ ngrx / store - 商店不以异步/离开的方式返回数据

时间:2017-04-02 10:15:52

标签: angular ngrx

从商店获取价值时遇到问题。操作挂起。我尝试以下列方式获取数据:

async onInit(params: Params) { 
  // it hangs on the line bellow
  var userToken = await this.store.select(fromRoot.getUserToken).toPromise();  
  console.log(userToken);
}

然后我执行以下异步函数:

ngOnInit(): void {
this.route.params.subscribe(params => {
  this.onInit(params).then(() => console.log('promise executed'));
});

永远不会返回用户令牌。

如果我订阅商店,那么它可以正常工作。

this.store.select(fromRoot.getUserToken).subscribe(ut => {
  console.log(ut);
});

1 个答案:

答案 0 :(得分:1)

我最近也遇到了这个问题。正如@ maxime1992指示的那样,您需要一个运算符来结束可观察的对象。

async onInit(params: Params) { // it hangs on the line bellow var userToken = await this.store.select(fromRoot.getUserToken).pipe(take(1)).toPromise();
console.log(userToken); }