Angular combineLatest:combineLatest 允许多少个订阅?订阅数量有限制吗?
Angular combineLatest: How many subscriptions are allowed in combineLatest? Are there any restrictions on number of subscribtions?
我目前正在使用最新的 7 个合并订阅。
大多数情况下需要使用更多。所以需要知道是否对 combineLatest 中的订阅有任何限制。
这是一个公平的问题。这取决于您如何使用 combineLatest 中的可观察对象。如果您将可观察对象作为数组传递,那么使用多少并不重要。至少在当前的 RxJs (6.5.4) 版本中,您可以将其作为数组传递。
combineLatest([obs1$, obs2$, obs3$, obs4$, obs5$, ..., ... ..., ...])
但是,如果您将可观察对象作为参数传递,您将收到来自 IDE(Typescript 编译器)的弃用警告,因为这在旧的 RxJS 版本上受到限制。
查看旧签名:
资料来源:https://rxjs-dev.firebaseapp.com/api/index/function/combineLatest
combineLatest(
v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike
): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>
结论:
如果使用新签名,则没有限制。
我目前正在使用最新的 7 个合并订阅。 大多数情况下需要使用更多。所以需要知道是否对 combineLatest 中的订阅有任何限制。
这是一个公平的问题。这取决于您如何使用 combineLatest 中的可观察对象。如果您将可观察对象作为数组传递,那么使用多少并不重要。至少在当前的 RxJs (6.5.4) 版本中,您可以将其作为数组传递。
combineLatest([obs1$, obs2$, obs3$, obs4$, obs5$, ..., ... ..., ...])
但是,如果您将可观察对象作为参数传递,您将收到来自 IDE(Typescript 编译器)的弃用警告,因为这在旧的 RxJS 版本上受到限制。
查看旧签名: 资料来源:https://rxjs-dev.firebaseapp.com/api/index/function/combineLatest
combineLatest(
v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike
): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>
结论:
如果使用新签名,则没有限制。