Angular 压扁承诺<;可观察<;HttpEvent<;任何>&燃气轮机&燃气轮机;可观察<;HttpEvent<;任何>&燃气轮机;
给定的角度HTTP拦截器必须实现Angular 压扁承诺<;可观察<;HttpEvent<;任何>&燃气轮机&燃气轮机;可观察<;HttpEvent<;任何>&燃气轮机;,angular,rxjs,es6-promise,Angular,Rxjs,Es6 Promise,给定的角度HTTP拦截器必须实现 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> 我需要使用req1链接next: const x = req1.then(r => next.handle(r)); 现在我有了一个承诺,但我需要以某种方式将其转换为可观察的 从概念上讲,我认为这在某种程度上是有效的,因为承诺和可观察的都是未来的价值 我很确定
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
我需要使用req1
链接next
:
const x = req1.then(r => next.handle(r));
现在我有了一个承诺
,但我需要以某种方式将其转换为可观察的
从概念上讲,我认为这在某种程度上是有效的,因为承诺
和可观察的
都是未来的价值
我很确定这是一个简单的转换,但我不知道如何实现
编辑
这可能会起作用:
来自(x).pipe(mergeAll())
。但我会继续寻找更具可读性的内容。以下内容如何:
从(this.service.getFutureValue())返回
.烟斗(
合并映射(x=>{
const headers=req.headers.append('X-Custom-Header',X);
返回next.handle(req.clone({headers}));
})
)
或者可选地:
从(this.service.getFutureValue())返回
.烟斗(
地图(x=>{
const headers=req.headers.append('X-Custom-Header',X);
返回请求克隆({headers});
}),
mergeMap(next.handle)
)
可读性不强。。。。但总比我的解决方案好。你的第二个选择。。。。可能它不起作用,因为next.handle
可能未绑定到next
。
const x = req1.then(r => next.handle(r));