【问题标题】:Debouncing unique values with Bacon.js使用 Bacon.js 消除唯一值
【发布时间】:2015-11-15 20:33:31
【问题描述】:

我有一个文件系统观察程序,它产生一个更改文件路径的 Bacon.js 事件流。我想对此流进行过滤和去抖动,以便每个唯一文件路径仅在该唯一值没有活动 5 秒后出现在输出流中。我本质上想编写以下伪代码:

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

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

【问题讨论】:

    标签: javascript rxjs frp bacon.js


    【解决方案1】:

    原来 Bacon.js 最近添加了一个groupBy 函数!我被表明它不存在的搜索误导了。所以这对我有用:

    var outputStream = inputStream.groupBy(function (item) { return item.path; })
        .flatMap(function (groupedStream) { return groupedStream.debounce(5000); });
    

    编辑:这是基于 OlliM 评论的简化版本(kiitos!):

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多