rxjs - 是否有一个 rxjs 运算符来获取可观察的列表并一次订阅 N 直到全部完成?
问题描述
我的应用程序需要对数据 API 进行多次单独调用,但出于性能原因,我不想一次全部转储它们。是否有一个 rxjs 运算符可以让我一次只运行几个,然后将它们的所有结果合并为一个?
因此,如果我需要从 ABC...XYZ 获取结果,并且我只想激活 2 个请求,它会订阅 A 和 B。然后如果 B 完成,它将订阅 C。然后 A 完成并订阅 D。依此类推,直到全部完成,但只有 2 个订阅处于活动状态。
解决方案
是merge()
的,可以选择这样做。最后一个参数merge
必须是(并发请求的)数量。
文档摘录:
const timer1 = interval(1000).pipe(take(10));
const timer2 = interval(2000).pipe(take(6));
const timer3 = interval(500).pipe(take(10));
const concurrent = 2; // the argument
const merged = merge(timer1, timer2, timer3, concurrent);
merged.subscribe(x => console.log(x));
推荐阅读
- r - ggplot2:带有 facet_wrap 的顶部图上的 x 轴
- command-line-arguments - 如何理解linux命令的使用信息?
- javascript - android中的自定义youtube播放器
- php - PHP河豚cbc VS珍珠地穴
- php - php - 为某些用户隐藏某些产品
- javascript - React 中的确认窗口
- mysql - IF ELSE 不适用于 SQL / MySQL
- django - 如何在注册表单中添加 Foreginkey 字段?
- angular - createEpicMiddleware 上的错误
- c# - 在 C# 中使用 JSON.NET 序列化对象列表