Javascript 财产';订阅';不存在于类型';运算符函数<;{},{}>';角度误差7
在学习如何处理Angular Typescript中的错误时,脚本抛出了一个错误 类型“OperatorFunction”上不存在属性“subscribe” 在我的组件的这个代码块中 返回组件代码使用的可观察对象的服务代码为Javascript 财产';订阅';不存在于类型';运算符函数<;{},{}>';角度误差7,javascript,angular,Javascript,Angular,在学习如何处理Angular Typescript中的错误时,脚本抛出了一个错误 类型“OperatorFunction”上不存在属性“subscribe” 在我的组件的这个代码块中 返回组件代码使用的可观察对象的服务代码为 newPost(post) { return ( this.http.post(this.url, post), catchError((error: Response) => error.status === 400 ? Observab
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))
)
);
}
我需要解决错误的帮助,以及关于抛出错误的原因或如何最好地实现错误处理的解释。您应该使用管道操作符,后跟map操作符,后跟catchError操作符。您必须从rxjs/operators导入map操作符和catchError操作符。请参阅下文:
.pipe(
mergeMap(resp => {
// add logic
}),
catchError(err => {
// add handling
})
);
newPost
看起来一点也不对劲,您是否缺少一个.pipe
?您使用的是逗号运算符,而不是实际将catchError
应用于可观察对象。当我尝试使用将catchError应用于可观察对象时。catchError
我得到一个错误,该错误属性“catchError”在类型“observable”上不存在。
即使我从“rxjs”导入了可观察}代码>然后阅读,因为看起来你已经习惯了6级之前的处理方式,但是插入一个随机的逗号是没有帮助的。好吧,我现在就来读这个,你需要使用.pipe(),然后将catchError放在里面,就像你会小睡或过滤一样,但没有点。因此,如果管道中有另一个方法,则逗号是正确的。
.pipe(
mergeMap(resp => {
// add logic
}),
catchError(err => {
// add handling
})
);