gpt4 book ai didi

javascript - Bacon.js 控制流与其他流的缓冲

转载 作者:行者123 更新时间:2023-11-29 14:51:42 24 4
gpt4 key购买 nike

我想在 Bacon.js 中缓冲 EventStream 的值,就像 buffer(closingSelector) 一样在 RxJava 中表现。当“ Controller 流”(RxJava 方法中的 closingSelector)发出一个新值时,事件缓冲区就会被刷新。

所以我希望流输出与 stream.bufferWithTimeOrCount 中的类似,但我不想用时间间隔或事件计数来控制缓冲,而是想用其他流来控制缓冲。

有没有一种在 Bacon.js 中实现它的简单方法?

最佳答案

Bacon.js 没有你需要的功能,所以我查看了 bacon.js source并编写了 holdWhen 的修改版本。

Bacon.EventStream.prototype.bufferUntilValue = function(valve) {
var valve_ = valve.startWith(false);

return this.filter(false).merge(valve_.flatMapConcat((function(_this) {
return function() {
return _this.scan([], (function(xs, x) {
return xs.concat(x);
}), {
eager: true
}).sampledBy(valve).take(1);
};
})(this)));
};

要查看实际效果,请查看此 jsFiddle .

关于javascript - Bacon.js 控制流与其他流的缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24691378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com