Angular:如何使用RXJS 6调用finally()

Sun*_*mar 21 rxjs angular angular6 rxjs6

我正在使用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);
        //});
      );
Run Code Online (Sandbox Code Playgroud)

另外如何使用publish().refCount()?

mar*_*tin 30


20B*_*0B2 21

需要从rxjs /运算符导入finalize

finalize

然后在里面使用finalize rxjs/operators,

observable()
    .pipe( 
         finalize(() => {
              // Your code Here
         })
     )
    .subscribe();
Run Code Online (Sandbox Code Playgroud)