在组件中使用响应结果

use response result in a component

我正在尝试获取组件中 post 响应的布尔结果。我检查了 api,它得到了正确的响应 (true/false),data 得到了认可。值,但我无法在其他组件中使用此值。

我在 repository/service class:

中有这个功能
validateSenderName(name: string) {
this.http.post<boolean>("api/senders/validateSenderName/" + name, null).subscribe(data => { return data; });

}

然后我在一个组件中调用这个函数:

checkSenderName = (params) => new Promise((resolve) => { resolve(this.repo.validateSenderName(params.value)); });

如何解决?

编辑:

感谢迈克尔,我成功了:

checkSenderName = (params) => new Promise((resolve) => {
this.repo.validateSenderName(params.value).subscribe(data => { this.nameAlreadyExists = data; });
resolve(this.nameAlreadyExists);

});

您可以 return observable 并在组件中订阅它。在这里没有不必要的混合 observables 和 promises 的必要。

服务

validateSenderName(name: string): Observable<any> {
  return this.http.post<boolean>("api/senders/validateSenderName/" + name, null);
}

组件

getData(params: any) {
  this.service.validateSenderName(params.value).subscribe(
    data => { this.checkSenderName = data },
    error => {
      // always good practice to handle HTTP errors
    }
  );
}