Angular - 运行 SwitchMap 开启

Angular - run SwitchMap on condition

我有以下代码:

data$ = getResponse1$.pipe(
        tap((res1: any) => {
          this.qService.data = res1;
        }),
        switchMap(() =>
          of(getResponse2$(res2)).pipe(
            map((val) => {
              const res: any = {
                val,
              };
              return res;
            })
          )
        )
      );

是否有可能 运行 getResponse1$ 即第一个 observable,以及 getResponse2$ 仅当条件为真时? 否则,我只想执行 getResponse2$.

看看:

将其应用到您的案例中:

getResponse2$.pipe(
  switchMap(response => [your_condition] ? of(response).pipe(withLatestFrom(getResponse1$)) : of(response))
);

如果条件为真,您将得到一个数组作为输出,其中数组的第一个元素对应 getResponse2$ 结果值,第二个元素对应 getResponse2$。否则你只会得到 getResponse2$ 结果值。