我需要具有输出大小限制的 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);
关于javascript - RxJS 缓冲区或缓冲区大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74378196/