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$
结果值。
我有以下代码:
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$
结果值。