【发布时间】:2021-10-22 03:16:25
【问题描述】:
我正在尝试解决一个问题。目前,我正在打开一个模式,但为此我需要 3 条路线 observables 的组合。所以,我的代码逻辑是这样的:
combineLatest([obs1, obs2, obs3])
.subscribe(([s1, s2, s3]: any) => {
openModal();
});
由于它会被执行 3 次,我的模态也会被打开 3 次,但我不希望它这样做,但我知道这是预期的行为。
因此,为此,我实施的糟糕的解决方案是使用这样的flag:
let shouldOpen = true;
combineLatest([obs1, obs2, obs3])
.subscribe(([s1, s2, s3]: any) => {
if(shouldOpen) {
shouldOpen = false;
openModal();
}
});
当然,这不是一个好的解决方案。
那么,问题是,有没有办法让我继续使用combineLatest,但让它只执行一次?
如果您想尝试使用 combineLatest,这里是 Stackblitz。
注意:我不能使用
forkJoin或zip,我已经尝试过了。
【问题讨论】:
标签: angular typescript combinelatest