gpt4 book ai didi

javascript - Angular 7 中的类型 'subscribe' 错误上不存在属性 'OperatorFunction<{}, {}>'

转载 作者:行者123 更新时间:2023-11-30 06:18:42 25 4
gpt4 key购买 nike

在学习如何处理 Angular Typescript 中的错误时抛出了一个错误

Property 'subscribe' does not exist on type 'OperatorFunction<{}, {}>' in this code block in my component

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))
)
);
}

我需要帮助解决错误并解释为什么会抛出错误或如何最好地处理错误。

最佳答案

您应该使用管道运算符,然后使用映射运算符,然后使用 catchError 运算符。您必须从 rxjs/operators 导入 map 运算符和 catchError 运算符。请看下面:

.pipe(
mergeMap(resp => {
// add logic
}),
catchError(err => {
// add handling
})
);

关于javascript - Angular 7 中的类型 'subscribe' 错误上不存在属性 'OperatorFunction<{}, {}>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54659642/

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