如何在Angular 6中进行同步调用

时间:2019-02-11 13:29:15

标签: angular angular6

嗨,我正在尝试获取用户详细信息,并根据用户值执行特定任务,我能够对api进行调用,但响应需要一些时间,这就是为什么我无法检查条件。

ngOnInit() {

this.getUserDetails();

  if((this.user.PrivacyNotice)) 
  {
       ------
  }
  else
  {
       ------
  }
 }

getUserDetails() {
this.user.Email = "test@test.com";

this.bookingListSubscription = this.restService.getUserProfile(this.user).subscribe(
  data => {
    this.user = data;
  });
}

这里的用户是UserVM模型类型的对象,其中包含PrivacyNotice布尔字段

以下是进行api调用的服务方法

getUserProfile(user: UserVM): Observable<any> {
    return this.http.post<UserVM>(this.getAPI('FetchUserProfile'),user,
  this.httpOptions).pipe(
    map(data => data),
    catchError(this.handleError<any>('getUserProfile'))
  );

}

如果要检查从api返回的布尔值标志PrivacyNotice的值,那么如何实现此目的。

2 个答案:

答案 0 :(得分:0)

只需在subscribe回调中完成任务即可。

this.bookingListSubscription = this.restService.getUserProfile(this.user).subscribe(
  data => {
    this.user = data;

    if((this.user.PrivacyNotice)) 
    {
         ------
    }
    else
    {
         ------
    }

  });

答案 1 :(得分:0)