如何从请求中返回响应(post | get)?

时间:2019-09-18 18:51:47

标签: javascript typescript angular7

服务中有一个变量,用于检查用户是否被授权:

  get IsAuthorized():any{
    return this.apiService.SendComand("GetFirstKassir");
  }

SendCommand(在通常的post请求或get之内):

ApiService.SendComand(Command: string, Params?: any): Observable<any>

我必须按以下步骤处理组件:

this.authorizeService.IsAuthorized.subscribe(
  res => {
    if (res.Name.length === 0) this.router.navigate(['/login'])
  }
);

我如何使get IsAuthorized ()返回string Name(not Observable<any>)(位于subscribe内部。我可以写console.log(this.authorizeService.IsAuthorized);的组件

1 个答案:

答案 0 :(得分:2)

这里您要处理的是异步。因此,IsAuthorized属性可以是一个Promise / Observable。我相信您正在寻找的只是一种更简单的语法。因此,我们可以使用异步/等待。

 get IsAuthorized():any{
    return this.apiService.SendComand("GetFirstKassir").toPromise();
  }

要在组件中使用,可以在ngOnInit中说,我们可以按以下方式使用它:

  async ngOnInit() {
    const isAuthorized = await this.authorizeService.IsAuthorized;
    if(isAuthorized) { // works like normal boolean variable
    }
  }

希望有帮助!!!干杯