相关疑难解决方法(0)

使用许多嵌套的 switchMap 是不好的做法吗?

我有 HTTP 拦截器。在那个拦截器中,在我更改请求之前,我需要打开一个加载程序。
真正让我担心的是我最终有很多switchMaps。

为什么?

  1. 加载器是异步的
  2. 我还需要翻译从拦截器传递到加载器服务的消息。翻译消息也是异步的。在拦截器中,我应该在加载器和翻译完成时运行请求

我在装载机服务中做什么

public showLoader(message) {
    return this.translateService.get(message).pipe(
        switchMap((translatedMessage) => {
            this.loader$ = from(
                this.loadingController.create({ message: translatedMessage })
            );
            return this.loader$.pipe(
                switchMap((loader) => {
                    return from(loader.present());
                })
            );
        })
    );
}

Run Code Online (Sandbox Code Playgroud)

在我的拦截器中

public intercept(request: HttpRequest<any>, next: HttpHandler) {
  return this.loaderService.showLoader("WAITING").pipe(
     take(1),
     switchMap( ()=>{
Run Code Online (Sandbox Code Playgroud)

所以已经有 3 个嵌套的switchMaps。在它下面,我还需要 2 或 3 个switchMaps(一个用于从存储中获取令牌,另一个用于其他用途)。基本上最终有 5switchMap秒。

问题:嵌套所有这些switchMap被认为是一种反模式吗?

observable rxjs angular

10
推荐指数
1
解决办法
1792
查看次数

标签 统计

angular ×1

observable ×1

rxjs ×1