Какой оператор rxjs выбрать для обработки ошибок http: tap () или catchError ()? - PullRequest
0 голосов
/ 14 октября 2018
/* error handler that will be used below in pipe with catchError() 
 * when resource fetched with HttpClient get() */

private _handleError<T> (operation: string, result?:T) {
     return( error: any): Observable<T> => {
          console.error( operation + ' ' + error.message );
          // or something else I want to do
          return of(result as T); // lets me return innocuous results
     }
}

getObjects() {
  return this.http.get<any[]>(this.myUrl).pipe(
    catchError(this._handleError('my error', [])
  );
}

теперь используется тап для обработки ошибок

getObjects() {
  return this.http.get<any[]>(this.myUrl).pipe(
    tap( objects => {
      // whatever action like logging a message for instance
    }, err => {
      console.error(err);
      // whatever else I want to do
    })
  );
}

почему я должен выбрать один подход вместо другого?будет ли обработка ошибок http с помощью tap () поддерживать мое приложение работающим в случае их возникновения?

...