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
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();
}
}
}