我正在使用RXJS 5,现在当我升级到6时,我遇到了一些问题.
以前我能够使用catch和最后但是根据更新catch用catchError替换(在管道中)现在如何使用finally?
我也有一些问题:
我是否需要更改throw-> throwError(在下面的代码Observable.throw(err);)
import { Observable,Subject,EMPTY,throwError } from "rxjs"; import { catchError } from 'rxjs/operators'; return next.handle(clonedreq).pipe( catchError((err: HttpErrorResponse) => { if ((err.status == 400) || (err.status == 401)) { this.interceptorRedirectService.getInterceptedSource().next(err.status); return Observable.empty(); } else { return Observable.throw(err); } }) //,finally(() => { // this.globalEventsManager.showLoader.emit(false); //}); );
另外如何使用publish().refCount()?
>使用throwError而不是Observable.throw,请参阅
https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/guide/v6/migration.md#observable-classes >最后重命名为finalize,你将在其他运算符中使用pipe(). >与publish()和refCount()相同.两者都是你将在pipe()中使用的运算符.
原文链接:https://www.f2er.com/angularjs/141355.html