У меня есть HTTP-перехватчик, и перед каждым запросом я проверяю, не истек ли токен доступа, если это так, я подписываюсь на вызов http.post из моей службы, а затем подписываюсь на него, и когда я получаю новый токен доступа, я вызовите next.handle (запрос) так:
this.auth.refreshAccessToken().subscribe((token: string) => {
this.auth.newAccessToken = token;
request = request.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
return next.handle(request);
});
Проблема в том, что он бросает TypeError: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
Что заставляет меня думать, что я неправильно выполняю этот вызов http.post.
РЕДАКТИРОВАТЬ 1: У меня не было возможности тщательно проверить это, но до сих пор кажется, что все работает. У меня был файл console.log перед возвратом всей карты, но он не работал, однако все остальное работало, и я обновляю currentUser везде / разрешения каждый раз, когда я получаю новый токен доступа и этот DID происходит, так что для всех намерений и целей это Кажется, работает, вот обновленный код:
mergeMap(token => {
this.auth.newAccessToken = token;
request = request.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
return next.handle(request);
})