如何获得可观察到的解决价值?

时间:2019-04-12 18:54:51

标签: javascript angular typescript asynchronous observable

我需要在app.component.ts文件中获取服务调用值,在加载任何其他视图之前需要此值,因为他们需要从redux存储中获取该值并在其ngOnInit()方法中进行检查。 / p>

我尝试使用promise并在.then()方法中执行逻辑...,没有用。我也尝试过使用可观察的方法

next: x =>, error: err => and complete: () =>,但是相同的问题仍然存在:我没有得到预期的行为,因为当其他视图初始化时,它们从存储中获取了空值,因为该服务当时还没有完成返回。 我找到了resolver()功能,但是由于app.component.ts没有像其他组件一样被路由,所以我不能使用它。

app.component.ts

 ngOnInit() {
 this.storeUserReportAccessService.checkUserReportAccess().subscribe((response) => {
  this.store.dispatch(new StoreUserReportAccess(response));
  }
}

服务:

checkUserReportAccess(): Observable<boolean> {
return this.http.postAPI(AWS_GET_USER_REPORT_ACCESS_URL,
            null).pipe(map(payload => {
            let access = payload.json();
            return access.HasAccess;
        }));
}

0 个答案:

没有答案