У меня есть несколько запросов, которые я хочу приостановить до тех пор, пока запрос проверки подлинности http не будет подтвержден. Это означает, что у меня должен быть http-шлюз, через который может проходить запрос без авторизации, а некоторые будут ждать, пока токен аутентификации не вернется.
Я думал об использовании switchmap, как показано ниже, но тогда он не будет работать, потому что наблюдаемый переключатель с возвращаемым значением.
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req)
.switchMap((event: HttpEvent<any>, index: number): Observable<HttpEv
ent<any>> => {
// without the **req.url.indexOf('/index')>-1**
//// Error Meassage: ***You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.***
if(this.token || req.url.indexOf('/index')>-1) {
return Observable.of(event);
}
})
.do(
next: function(data){
console.log(data);
},
error: function(error: HttpErrorResponse){
// retry
// or handling data
}
);
Ошибка СООБЩЕНИЯ
Вы указали «неопределенный», где ожидался поток. Вы можете предоставить Observable, Promise, Array или Iterable.