gpt4 book ai didi

angular - 如何解决 angular 8 中 Observable 中的捕获错误?

转载 作者:行者123 更新时间:2023-12-04 23:35:37 24 4
gpt4 key购买 nike

我做了错误处理程序代码,但我在 catch 中出错了。未定义的方法。

这是我的 serivce.ts 代码。

import { Injectable } from "@angular/core";
import { HttpClient, HttpErrorResponse } from "@angular/common/http";
import { user } from "./user";
import { Observable } from "rxjs";
import "rxjs/add/operator/catch";
import "rxjs/add/Observable/throw";
@Injectable({
providedIn: "root"
})
export class DemoService {
private url: string = "/assets/demo/user.json";
constructor(private http: HttpClient) {}

getuserdetails(): Observable<user[]> {
return this.http.get<user[]>(this.url).catch(this.errorHandler);
}
errorHandler(error: HttpErrorResponse) {
return Observable.throw(error.message || "server error.");
}
}

这是我的 app.component.ts 文件代码
 public userdetails = [];
public errorMsg;
constructor(private user: DemoService) {}
ngOnInit() {
this.user
.getuserdetails()
.subscribe(
$data => (this.userdetails = $data),
error => (this.errorMsg = error)
);
}

我在捕获错误。并且错误消息是“Observable”类型上不存在“catch”属性。

最佳答案

您可以使用 catchError rxjs/operators 为了这。
尝试如下。

import { catchError } from 'rxjs/operators';

export class DemoService {

getuserdetails(): Observable<user[]> {
return this.http.get<user[]>(this.url)
.pipe(catchError(this.errorHandler))
}
errorHandler(error: HttpErrorResponse) {
return Observable.throw(error.message || "server error.");
}
}

关于angular - 如何解决 angular 8 中 Observable 中的捕获错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297464/

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