最近我将角度5升级到角度6,因此我升级了服务代码如下:
register(postBody: any): Observable<any> {
return this.http
.post(this.remoteUrl + "auth/register", postBody)
.pipe(
catchError(this.handleError("register", []))
);
}
this.authService.register(this.formObj.value).subscribe(
response => {
}
)
Run Code Online (Sandbox Code Playgroud)
现在,当我从API获得400错误时.我能够在错误处理程序中捕获此错误但仍然订阅执行,为什么?订阅应该只在获得没有错误的响应时调用.
我是新手,但在角度5中它并没有发生.所以任何人都可以纠正我的错误吗?
Tah*_*ued 13
订阅允许您处理从注册功能返回的任何内容.但是,为什么你只是捕捉错误,你应该至少映射你的结果,并在它成功时返回它.另外我不认为你应该做什么来捕捉和抛出错误.
我希望这能帮到您
register(postBody: any): Observable<any> {
return this.http
.post(this.remoteUrl + "auth/register", postBody)
.pipe(
map(data => data), //this will return the response when success
catchError(this.handleError(err =>{
//Here you can do something like
err.code === 404
? throwError("Not found")
: throwError(err)
})
);
}
this.authService.register(this.formObj.value).subscribe(
response => {
// Do stuff whith your result
},
err => {
// Do stuff whith your error
},
() => {
// Do stuff after completion
},
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7191 次 |
| 最近记录: |