У меня есть функция для возврата свежего токена доступа с удаленного сервера с использованием токена обновления (для использования с HttpInterceptor в Angular 4.3+) на основе этого Angular 4 Tutorial - Обработка обновления токена с помощью нового HttpInterceptor :
doRefreshToken(): Observable<string> {
http.post('/my/api', refreshToken)
.subscribe(
(data) => {
this.newAccessToken = (<any>data).accessToken;
console.log("RECEIVED NEW TOKEN: " + this.newAccessToken);
},
(error) => { },
() => { }
);
console.log("RETURNING NEW TOKEN: " + this.newAccessToken);
return Observable.of(this.newAccessToken);
}
Но вызов doRefreshToken()
возвращает undefined
до получения токена с сервера.Почему функция отвечает до поступления данных?
Выход консоли:
RETURNING NEW TOKEN: undefined
blah blah blah
RECEIVED NEW TOKEN: abc123imanewtoken