【发布时间】:2021-09-11 19:50:59
【问题描述】:
我有一个端点,它接收一组 id 来进行一些处理。
后端开发人员要求我在高峰时段只发送 10 个 id,在高峰时段发送 50 个。
用户在一个字段中输入他们想要处理的所有 id(前 100 个)。
我需要做的是,首先,知道多少 ids 发送到后面,关于当前时间。
我之前没有对 id 进行分块,因为我想获取一些与前面提到的条件相关的 id,所以我试图重复整个 obs,直到没有要处理的 id。 还有一个挑战,就是每次之间必须有1分钟的延迟。
concatMap(() =>
of(null).pipe(
map(() => this.isRushHour()),
map(isRushHour => this.storeListToProccess.splice(0, isRushHour ? 10 : 50)),
switchMap(p => this.createZones(p)),
delayWhen(() => this.storeListToProccess.length ? interval(this.delayMs) : interval(0)),
repeatWhen(()=> !!this.storeListToProccess.length)
)
)
有没有办法实现这一点,或者预分块 id 是唯一的方法吗?
【问题讨论】:
标签: angular typescript rxjs rxjs-observables