如何 return 来自请求的响应 (post | get)?

How to return a response from a request(post | get)?

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

  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);

这里你处理的是异步。所以 IsAuthorized 属性可以是 promise/observable。我相信您正在寻找的只是一种更简单的语法。因此我们可以使用 async/await。

 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
    }
  }

希望对您有所帮助!!!干杯