How to return Observable after some Promise get resolved in Ionic 2/Angular 2?

后端 未结 4 1338
独厮守ぢ
独厮守ぢ 2020-12-08 16:06

I am trying to return an observable after a successful completion of my Promise, but that function is not returning Observable. To be specific to code, i want to fetch auth

4条回答
  •  独厮守ぢ
    2020-12-08 16:44

    Answer from Sunil worked for my use case, this is my working example. I am using this in my http interceptor to append acces token to the HTTP request

    import {from, Observable} from "rxjs";
    import {mergeMap} from "rxjs/operators";
    
     handleTokenExpiration(request: HttpRequest, next: HttpHandler): Observable> {
        if (this.isAccessTokenPresent()) {
          request = request.clone({
            setHeaders: {
              Authorization: `Bearer ${this.getAccessToken()}`
            }
          });
          return next.handle(request);
        } else {
          if (this.isRefreshTokenPresent()) {
            return from(this.refreshToken(this.getRefreshToken())).pipe(mergeMap(res => {
              request = request.clone({
                setHeaders: {
                  Authorization: `Bearer ${this.getAccessToken()}`
                }
              });
              return next.handle(request);
            }));
          } else {
            this.logout();
          }
        }
      }
    

提交回复
热议问题