You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于RxJS实现无序Observable流的缓冲排序输出?

RxJS实现乱序Observable的延时有序输出方案咨询

我从Observable接收的消息有时会乱序,但每个消息都包含可用于排序的时间戳。由于不知道流何时结束,我希望能将元素按时间顺序输出,且可以接受1秒及以上的延迟。

我的思路是通过缓冲并排序元素来实现:保留约3条条目,排序后释放第一条,直到经过数毫秒或有新元素到达。

示例输入流

//Time item appears:   example item:
14:01:01               {time: '14:00:00', name: 'olga'}
14:01:02               {time: '14:00:03', name: 'peter'}
14:01:03               {time: '14:00:02', name: 'ouma'}
14:01:05               {time: '14:00:06', name: 'kat'}
14:01:06               {time: '14:00:05', name: 'anne'}
//... more to come

期望输出

//Time item appears:   example item:
14:01:05               {time: '14:00:00', name: 'olga'}
14:01:06               {time: '14:00:02', name: 'ouma'}
14:01:07               {time: '14:00:03', name: 'peter'}
14:01:08               {time: '14:00:05', name: 'anne'}
14:01:09               {time: '14:00:06', name: 'kat'}
// ... more to come

我自己尝试了一个实现方案,但不确定是否可以用RxJS的buffer、bufferCount等运算符来实现更优的方案,想请教有没有更好的解决办法?

内容的提问来源于stack exchange,提问作者Andresch Serj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:49:56