【发布时间】:2019-07-19 06:26:13
【问题描述】:
我正在尝试使用 ionic4 应用程序中的以下代码来捕获错误代码为 400 的 HTTP 错误。但它无法捕捉到它,这里有什么问题。控制台日志行均未执行,但在 Firefox 控制台中显示 400 错误。
export class AuthService {
constructor(private httpClient: HttpClient) {}
login(email: string, password: string){
const data = {
password: password,
email: email,
}
this.httpClient.post(url, data).pipe(
tap((res: IAuthResponse) => {
console.log("Catch error 1")
return res;
}),
catchError((error) => {
console.log("Catch error 2")
return Observable.throw(new Error(error.status));
})
).subscribe(
(result) => {
console.log("Catch error 3")
},
(error) => {
console.log("Catch error 4")
}
);
}
实际上,我只想在我编写 console.log 行的任何地方处理此错误。找到了很多这样的例子,但没有一个有效。
编辑:在我的真实代码中,控制台日志第 1 行位于 AuthService 类中,但订阅代码位于不同的类文件中。这两个类都必须根据结果进行一些初始化。所以我需要同时拥有管道代码和订阅代码。
【问题讨论】:
标签: angular ionic-framework rxjs