Angular 压扁承诺<;可观察<;HttpEvent<;任何>&燃气轮机&燃气轮机;可观察<;HttpEvent<;任何>&燃气轮机;

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)); 现在我有了一个承诺,但我需要以某种方式将其转换为可观察的 从概念上讲,我认为这在某种程度上是有效的,因为承诺和可观察的都是未来的价值 我很确定

给定的角度HTTP拦截器必须实现

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));