gpt4 book ai didi

Angular 6 : Property 'catch' does not exist on type 'Observable' ?

转载 作者:太空狗 更新时间:2023-10-29 16:55:46 28 4
gpt4 key购买 nike

我正在将我的应用程序升级到 Angular 6。我正在从 Angular 4 升级,但下面的代码在 Angular 6 中导致了错误,而在 Angular 4 中它运行良好。


我得到的错误:

Property 'of' does not exist on type 'typeof Observable'

Error: Property 'catch' does not exist on type 'Observable'

我应该如何解决这些错误?

  private authInterceptor(observable: Observable<Response>): Observable<Response> {
return observable.catch((error, source) => {
if (error.status == 401) {
this.router.navigateByUrl('/login');
return Observable.of();
} else {
return Observable.throw(error);
}
});
}

最佳答案

由于您将问题标记为 rxjs6,我假设升级到 Angular 6 包括升级到 rxjs6。在那种情况下,它不起作用,因为可观察对象上的方法现在是独立的运算符,您可以使用 pipe() 应用它们。此外,进口也发生了变化。查看migration guide了解更多详情。

使用 rxjs6 它应该看起来像这样:

import { Observable, EMPTY, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';

private authInterceptor(observable: Observable<Response>): Observable<Response> {
return observable.pipe(
catchError( err => {
if (err.status == 401) {
this.router.navigateByUrl('/login');
return EMPTY;
} else {
return throwError(err);
}
})
);
}

关于 Angular 6 : Property 'catch' does not exist on type 'Observable<Response>' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50967309/

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