我有一个函数,其中可能定义了许多未知的可观察值:
class Foo {
show$(multipleObservables$: Observable<boolean>[]): void {
// ...
}
}
在我使用这个类的地方,可观察的数量各不相同。它可以是 1,但也可以是 3:
const observableOne$ = of(false);
const observableTwo$ = of(true);
const observableThree$ = of(false);
const observables$ = [observableOne$, observableTwo$, observableThree$];
Foo.show$(observables$);
我如何编写 show$ 函数以在任何 observable 为 true 时返回 true,或者在它们全部为 false 时返回 false?
我读过这篇文章,但前提是你已经知道可观察的数量。有没有一种方法可以在不知道正手观察的情况下创建这个函数?
这将取决于源 Observables 是否会完成。如果你打算只使用of()
你可以这样做:
show$(multipleObservables$: Observable<boolean>[]) {
return forkJoin(multipleObservables$)
.pipe(
map((results: boolean[]) => results.some(Boolean)),
);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句