Я создаю перехватчик для отправки токена вместе с запросами на API.
Я использую @ionic/storage
для хранения информации о пользователе.Однако, когда я пытаюсь получить токен в конструкторе для сохранения в переменную (например, private token: string), мой перехватчик не может получить это значение, даже если токен существует. Я полагаю, это происходит потому, что перехват выполняется до завершения функции this.storage.get.
Как это исправить?
Я пытался поставить this.storage.get
функция внутри перехвата, но ошибка возврата:
Type 'Promise >> 'нельзя назначить типу' Observable > '.Свойство _isScalar отсутствует в типе Promise > '.
Посмотрите на код:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return this.storage.get('token')
.then((token) => {
if (token) {
const newRequest = req.clone({ setHeaders: { 'Authorization': `Bearer ${token}` } });
return next.handle(newRequest);
} else {
return next.handle(req);
}
})
.catch(() => {
//TODO: Trata erro
})
}
Спасибо за помощь.