如果使用确认按钮单击,我正在使用角度材料模态来调用Web服务,这是问题,如果Web服务返回错误,我将无法获取错误
dialogRef.afterClosed().subscribe(result => {
// calling the ws
this.reqService.onRequestSave(this.request).subscribe(data =>{
// do some work
},err=>{
// never displayed
alert(err)
}
)
},error=>{
// never displayed
alert(error)
}
);
// 休息客户
onRequestSave(request : RequestDto){
console.log(JSON.stringify(request))
return this.http.post<RequestResponseDto>(this.apiUrl + "/request",JSON.stringify(request),this.utils.getHeaders());
}
我想向第一个警报显示任何解决方法,谢谢您的帮助
答案 0 :(得分:1)
为什么要尝试在父组件中调用服务。代替单击确认按钮,您可以使用一种方法来调用服务,如果调用成功完成,请关闭对话框,如果出现错误,则显示错误。
也许是这样。
在对话框组件中:-
onConfirmation(){
this.reqService.onRequestSave(this.request).subscribe(
data => { this.dialog.close(data); },
error => { alert(error); }
}
并在父组件中:-
dialog.afterClosed().subscribe(result => {
this._snackbar.open("Request successfully saved.");
});
答案 1 :(得分:0)
如果您尝试用 try/catch 包围该代码会怎样?这应该适用于您的“处理”代码引发错误的错误:
dialogRef.afterClosed().subscribe(result => {
// calling the ws
this.reqService.onRequestSave(this.request).subscribe(data =>{
try {
// processing 'data'
} catch (err) {
// displayed, if the processing code
alert(err);
}
}, err=>{
// displayed, if the Observable produces an error
alert(err);
});
});