Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Bacon.js消除唯一值的抖动_Javascript_Rxjs_Frp_Bacon.js - Fatal编程技术网

Javascript 使用Bacon.js消除唯一值的抖动

Javascript 使用Bacon.js消除唯一值的抖动,javascript,rxjs,frp,bacon.js,Javascript,Rxjs,Frp,Bacon.js,我有一个文件系统观察器生成一个Bacon.js事件流,其中包含更改的文件路径。我想对这个流进行过滤和去模糊处理,这样每个唯一的文件路径只有在该唯一值没有活动的5秒后才会出现在输出流中。我主要想编写以下伪代码: var outputStream = inputStream.groupBy('.path', function (groupedStream) { return groupedStream.debounce(5000); } ).merge(); 我有一个复杂的解决方案,包括为

我有一个文件系统观察器生成一个Bacon.js事件流,其中包含更改的文件路径。我想对这个流进行过滤和去模糊处理,这样每个唯一的文件路径只有在该唯一值没有活动的5秒后才会出现在输出流中。我主要想编写以下伪代码:

var outputStream = inputStream.groupBy('.path',
    function (groupedStream) { return groupedStream.debounce(5000); }
).merge();

我有一个复杂的解决方案,包括为每个过滤流创建一个单独的Bacon.Bus,并在每次遇到新的唯一值时创建一个新的总线。这些都是去抖动和插入到输出总线。有更好的办法吗?切换到RxJS并使用其groupBy函数会更好吗?

事实证明Bacon.js最近添加了一个
groupBy
函数!我被那些表明它不存在的搜索误导了。这对我来说很有用:

var outputStream = inputStream.groupBy(function (item) { return item.path; })
    .flatMap(function (groupedStream) { return groupedStream.debounce(5000); });
编辑:这是一个基于奥利姆评论(kiitos!)的简化版本:

您可以使用
groupBy(“.path”)
代替函数,请参见培根文档中的。
var outputStream = inputStream.groupBy('.path')
    .flatMap(function (groupedStream) { return groupedStream.debounce(5000); });