Angular2 rxjs - switchmap fangen Fehler

Ich würde gerne in der Lage sein zu handhaben, Fehler, Fehler beim Aufruf von this.authService.refreshToken(). Können Fehler behandelt werden, die innerhalb der switchmap block, oder wie gehe ich über den Umgang mit einem Fehler in diesem Fall?

post3(endpoint: string, body: string) : Observable<any> {
    if (this.authService.tokenRequiresRefresh()) {
      this.authService.tokenIsBeingRefreshed.next(true);
      return this.authService.refreshToken().switchMap(
        data => {
          this.authService.refreshTokenSuccessHandler(data);
          if (this.authService.loggedIn()) {
            this.authService.tokenIsBeingRefreshed.next(false);
            return this.postInternal(endpoint, body);
          } else {
            this.authService.tokenIsBeingRefreshed.next(false);
            this.router.navigate(['/sessiontimeout']);
            Observable.throw(data);
          }
        }
      );
    }
    else {
      return this.postInternal(endpoint, body);
    }
  }
  • BTW, müssen Sie eine Rückgabe: return Observable.throw(data);
InformationsquelleAutor blgrnboy | 2017-01-20
Schreibe einen Kommentar