Angular HTTP 请求的条件
Condition on Angular HHTP Request
你可以使用条件,Angular 订阅功能吗?
就像,在这段代码中:
this.http.post<any>(phpUrl, content)
.subscribe(
(r) => {
if(r.message) // That's how the target script actually manages errors
{
console.log(r.message);
this.handleErrorPhp(r, formData.email);
}
else
{
this.router.navigate(['/login'], { queryParams: { register: true } });
}
},
(error) => {
this.handleErrorPhp(error, formData.email);
}
);
当脚本没有发现任何错误时,我也想导航到登录页面。但是,即使“r.message”为空,我的代码也会出错并停止,告诉我 r.message 未定义。
编辑:这是控制台错误日志:
ERROR TypeError: can't access property "message", i is null
我会说在尝试访问 属性 message
之前检查是否定义了 r
。有关 double-bang 运算符 here.
的更多信息
this.http.post<any>(phpUrl, content).subscribe(
(r: any) => {
if (!!r && !!r.message) {
console.log(r.message);
this.handleErrorPhp(r, formData.email);
} else {
this.router.navigate(['/login'], { queryParams: { register: true } });
}
},
(error: any) => {
this.handleErrorPhp(error, formData.email);
}
);
你可以使用条件,Angular 订阅功能吗? 就像,在这段代码中:
this.http.post<any>(phpUrl, content)
.subscribe(
(r) => {
if(r.message) // That's how the target script actually manages errors
{
console.log(r.message);
this.handleErrorPhp(r, formData.email);
}
else
{
this.router.navigate(['/login'], { queryParams: { register: true } });
}
},
(error) => {
this.handleErrorPhp(error, formData.email);
}
);
当脚本没有发现任何错误时,我也想导航到登录页面。但是,即使“r.message”为空,我的代码也会出错并停止,告诉我 r.message 未定义。
编辑:这是控制台错误日志:
ERROR TypeError: can't access property "message", i is null
我会说在尝试访问 属性 message
之前检查是否定义了 r
。有关 double-bang 运算符 here.
this.http.post<any>(phpUrl, content).subscribe(
(r: any) => {
if (!!r && !!r.message) {
console.log(r.message);
this.handleErrorPhp(r, formData.email);
} else {
this.router.navigate(['/login'], { queryParams: { register: true } });
}
},
(error: any) => {
this.handleErrorPhp(error, formData.email);
}
);