gpt4 book ai didi

javascript - Bacon.js 是否有一些允许您收集同时发出的两个事件的组合器?

转载 作者:行者123 更新时间:2023-11-29 22:09:03 25 4
gpt4 key购买 nike

正如标题所说,我正在寻找一些组合器 collect,它将同时发出的事件收集到一个列表中,类似于 Reactive-Banana 中的那个。所以换句话说:

collect :: EventStream a -> EventStream [a]
collect [(time1, e1), (time1, e2)] = [(time1, [e1,e2])]

如果它不存在,我将如何实现它?仔细阅读源代码,我没有看到某种方式来读取事件发生的“时间”,例如 Bacon.Event 类似乎没有记录它自己发生的时间?我是否应该只使用 Javascript 的原生 new Date().getTime() 函数来标记事件事后,并断言在某个任意时间范围内发生的事件实际上是“同时发生的” ".

最佳答案

Bacon.js 中没有事件同时性的概念。事件也不带有时间戳。

您可以使用 stream.bufferWithTime(1) 大致对同时发生的事件进行分组。您将获得一系列大致同时发生的事件。

如果您需要输出中的时间,您可以使用 stream.map(f) 和一个将数组与当前时间组合在一起的函数。

所以,像这样:

stream.bufferWithTime(1).map(function(events) {
return {
events: events,
timestamp: new Date().getTime()
}
})

关于javascript - Bacon.js 是否有一些允许您收集同时发出的两个事件的组合器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19097017/

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