如何返回包含/依赖于Observable <B>类型的Observable的Observable <A>类型的Observable?

科迪·布格斯坦

我在HttpInterceptor函数内编写一些代码该函数intercept应该返回类型为Observable的对象HttpEvent<any>

对我来说,最棘手的部分是我需要在此函数内进行异步调用,并且只有Observable<HttpEvent<any>>在进入异步代码的“成功”函数后才能返回该调用。

所以我的问题是,如何返回正确类型的Observable,它实际上包含另一个不同类型的Observable?

这是我的代码

@Injectable()
export class MyInterceptor implements HttpInterceptor {

    constructor(private valueService: ValueService){}

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        const duplicate = req.clone({
            params: req.params.set('newVal', this.valueService.getNewValue())  // this.valueService.getNewValue() returns an Observable<string> !!
        });

        return next.handle(duplicate);
  }
}
埃利索
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return this.valueService.getNewValue().
      switchMap((data:string)=>{  //or flatMap
         //You get "data"
         const duplicate = req.clone({
         params: req.params.set('newVal', data);
         return next.handle(duplicate);
       });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

缺少类型“Observable<boolean>”

Typescript:“ Observable <{}>”类型无法分配给“ Observable”类型

角@Input类型为Observable

Observable <T>内部的缩小类型

类型“ Observable <Todo []>”缺少属性

如何从 firebase 查询返回任何类型的 Observable

如何组合多个 Observable 类型数组 Observable<T[]>?

类型 'Observable<Observable<Object[]>>' 不可分配给类型 'Observable<Object[]>'

无法将类型Observable <Observable <any [] >>分配给类型Observable <any []>

类型'Observable <Observable <Response >>'不可分配给类型'Observable <Response>'

类型 'Observable<Observable<Login>>' 不可分配给类型 'Observable<Action>'

使用地图更改Observable的返回类型

在Typescript中返回多种类型的Observable

在HTML中显示Observable <any []>返回类型

RxJs 'from' 返回类型未知的 Observable

返回 Observable<void> 类型的 rxjs 函数

无法将Observable <{}>分配给Observable <SomeType []>类型

如何在RxJS中创建依赖于另一个Observable的Observable

RxSwift,依赖链的下载返回相同的Observable类型

RxSwift,将Observable <[array]>分为Observable <a>,Observable <b>

RXJS Observable 枚举类型,类型 'Observable<Type>' 不可分配给类型 'Type'

键入'Observable <Response | 无法将Observable <Response >>'分配给类型'Observable <Response>'

输入 'Observable<any[] | Observable<any[]>>' 不可分配给类型 'Observable<any[]>'

fromPromise在Observable类型上不存在

订阅 Observable 并获取特定类型的事件

Observable.retrywhen中的异常类型

Observable.combinekotlin中的最新类型推断

类型“ Observable <IProduct []>”中缺少属性“ includes”

Rxjs 错误类型 'Observable<HttpEvent<any>>'