Angular 将筛选器与withLatestFrom组合时无效的服务器调用

Angular 将筛选器与withLatestFrom组合时无效的服务器调用,angular,typescript,rxjs,Angular,Typescript,Rxjs,我可以观察到: const myObservable = Observable.combineLatest(v1, v2) .filter(([v1, v2]: [boolean, boolean]) => v1 && v2) .withLatestFrom(myServerCall) .subscribe((data) => { console.log(data); }); 其中myServercall是一个htt

我可以观察到:

const myObservable = Observable.combineLatest(v1, v2)
    .filter(([v1, v2]: [boolean, boolean]) => v1 && v2)
    .withLatestFrom(myServerCall)
    .subscribe((data) => { 
        console.log(data);
    });
其中myServercall是一个http请求

当我的筛选器不正常时,我不想进行http调用。但它总是调用我的服务器,即使它从未进入我的订阅功能


如何避免无用的服务器调用?

withLatestFrom的
不是一个好的选择,因为它订阅了所有源观测值(这意味着
myServerCall
),这就是它进行您不想要的远程调用的地方

我认为
switchMap
在这里更有意义

const myObservable = Observable.combineLatest(v1, v2)
    .filter(([v1, v2]: [boolean, boolean]) => v1 && v2)
    .switchMap(() => myServerCall())
    .subscribe((data) => { 
        console.log(data);
    });

哇,谢谢!我不知道!我这样做是为了在订阅中保留我的过滤器,但我可以在切换图中提供它们!