在学习如何处理Angular Typescript中的错误时抛出了错误
类型'OperatorFunction <{},{}>'上不存在属性'subscribe' 在我组件的此代码块中
createPost(post: HTMLInputElement) {
this.service.newPost(post).subscribe(
response => {
this.posts.splice(0, 0, post);
},
(error: AppError) => {
if (error instanceof BadInput) {
// Set form errors and display them next to input fields
this.form.setErrors(error.originalError);
} else {
alert("An unexpected error occurred.");
console.log(error);
}
}
);
}
返回组件代码使用的可观察值的服务代码是
newPost(post) {
return (
this.http.post(this.url, post),
catchError((error: Response) =>
error.status === 400
? Observable.throw(new BadInput(error))
: Observable.throw(new AppError(error))
)
);
}
我需要解决该错误的帮助,并解释为什么会引发该错误或如何最好地实现处理错误。
答案 0 :(得分:0)
您应该使用管道运算符,然后使用地图运算符,再使用catchError运算符。您将必须从rxjs / operators导入map运算符和catchError运算符。请看下面:
.pipe(
mergeMap(resp => {
// add logic
}),
catchError(err => {
// add handling
})
);