javascript - RxJS 缓冲区或缓冲区大小限制

标签 javascript rxjs

我需要具有输出大小限制的 buffer 功能。假设我有一个可观察流 myInterval,我想使用可观察的通知程序 bufferBy 来控制输出,但是当通知程序触发时,我想限制发出的项目数量。 buffer 没有这样的重载,但它说明了我想要实现的目标。

const maxBufferSize = 5;
const myInterval = interval(1000);
const bufferBy = fromEvent(document, 'click');

const bufferedInterval = myInterval.pipe(buffer(bufferBy, maxBufferSize));

// ex. output: [1,2,3] ... [4,5,6,7,8] ... [9,10]

应该是无损的。如何做到这一点?

最佳答案

也许就是这样?

window运算符(operator)

const maxBufferSize = 5;
const myInterval = interval(1000);
const bufferBy$ = fromEvent(document, 'click');

myInterval.pipe(
  window(bufferBy$),
  mergeMap(bufferCount(maxBufferSize)),
).subscribe(console.log);

https://stackblitz.com/edit/szp6ke

关于javascript - RxJS 缓冲区或缓冲区大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74378196/

相关文章:

http - ionic 2 : stop an http request

javascript - 使用点击事件隐藏和显示 div

javascript - 在 Node.js 中实现服务器发送事件的简单方法?

javascript - 正则表达式除了完整字符串而不是字符串内的部分

angular - rxjs takeUntil 不执行finalize

javascript - 在事件流中等待安静期的 RxJS 运算符,但在事件流繁忙的情况下不会永远等待

angular - Http 请求的加载指示器

Angular6 属性 'debounceTime' 在 'Observable<any>' 类型上不存在?

javascript - 为什么我缩放的 HTML5 Canvas 上的 'pixels' 奇怪地对齐?

javascript - 我应该为实时 Web 应用程序使用 Node.js 而不是 Rails 吗?