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);
});
哇,谢谢!我不知道!我这样做是为了在订阅中保留我的过滤器,但我可以在切换图中提供它们!