从rxjs和angular上的可观测值获取值后,如何处理拦截器上的请求?

从rxjs和angular上的可观测值获取值后,如何处理拦截器上的请求?,angular,typescript,asynchronous,rxjs,Angular,Typescript,Asynchronous,Rxjs,所以我来自AngularJS的背景,在学习Angular 5时,我仍然不能把我的头放在观察物上 我正在尝试为我的身份验证服务编写一个HTTP拦截器。但是,当我尝试从localstorage服务(或此时的任何可观察对象)获取值时,我不太确定如何在获取数据(使用subscribe?)后从可观察对象正确返回next.handle(req)方法 以下是我当前的代码(不起作用): @Injectable() 导出类AuthinterceptorService实现HttpInterceptor{ 构造函数(

所以我来自AngularJS的背景,在学习Angular 5时,我仍然不能把我的头放在观察物上

我正在尝试为我的身份验证服务编写一个HTTP拦截器。但是,当我尝试从
localstorage
服务(或此时的任何可观察对象)获取值时,我不太确定如何在获取数据(使用subscribe?)后从可观察对象正确返回
next.handle(req)
方法

以下是我当前的代码(不起作用):

@Injectable()
导出类AuthinterceptorService实现HttpInterceptor{
构造函数(私有存储:LocalStorage){}
截取(req:HttpRequest,next:HttpHandler):可观察{
返回此.storage.getItem('authToken')。订阅(res=>{
返回next.handle(req);
});
}    
}
注意,我没有对数据做任何操作,只需尝试从异步调用中返回Observable>object


提前感谢您的帮助

返回可观察的内部
订阅
不会有任何作用。您需要将其合并到链中。例如:

return this.storage.getItem('authToken')
  .mergeMap(res => next.handle(req));

坦克斯·马丁,这确实奏效了。我还不太清楚我在用这个做什么,所以我要多读一些书。我还能够用类似的东西执行相同的功能:返回this.storage.getItem('authToken').switchMap(r=>{return next.handle.req();});
return this.storage.getItem('authToken')
  .mergeMap(res => next.handle(req));