在组件中使用响应结果
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
}
);
}
我正在尝试获取组件中 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
}
);
}