gpt4 book ai didi

angular - 如何捕获 angular(ionic) 中的 http 错误?

转载 作者:行者123 更新时间:2023-12-05 08:22:50 25 4
gpt4 key购买 nike

我试图在 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")
}
);
}

enter image description here

实际上我只是想在我编码 console.log 行的任何地方处理这个错误。找到了很多这样的例子,但没有一个有效。

编辑:在我的真实代码中,控制台日志第 1 行在 AuthService 类中,但订阅代码在不同的类文件中。这两个类都必须根据结果进行一些初始化。所以我需要同时拥有管道代码和订阅代码。

最佳答案

这是可以做到的方式

Here is working Example

this.httpClient.post("ssdsdsd", data).pipe(
(res: any) => {
console.log("Catch res ")
return res;
},
).subscribe(
(result) => {
console.log("Catch result ")
},
(error) => {
console.log("Catch error ")
}
);

关于angular - 如何捕获 angular(ionic) 中的 http 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57106701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com