首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找反应性香蕉中的“平坦事件::事件[a] ->事件a‘

寻找反应性香蕉中的“平坦事件::事件[a] ->事件a‘
EN

Stack Overflow用户
提问于 2016-04-29 16:46:24
回答 1查看 116关注 0票数 6

我正在寻找类似flatten :: Event [a] -> Event a的东西(如果您愿意,可以与Foldable f => f交换[] ),它将为Event列表中的每个a生成一个单独的事件,比如sodium

我怀疑这在switchE中是可能的,但是我需要一个[a] -> Event a类型的函数。

我可以用newEvent自己设计,但是有内置到reactive-banana的函数吗?

编辑

实际上,我不太确定我是否能用newEvent实现这一点。

代码语言:javascript
复制
flatten :: Foldable f => f a -> Banana.MomentIO (Banana.Event a)
flatten xs = do
  (event, fire) <- Banana.newEvent
  liftIO $ forkIO $ mapM_ fire xs
  return event 

fire会一直阻塞直到有订阅者,或者如果没有订阅服务器,它会立即返回吗?

编辑2

查看newAddHandler,我上面的实现将无法工作,因为所有事件都可能在任何处理程序注册之前触发。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 17:51:28

这似乎是不可能的。根据the notes in Heinrich Apfelmus's blog的说法,Event不支持同时发生。这是一个相对较新的变化;这篇文章的日期是去年8月,版本1.0是在10月份发布的。当我几年前开始学习反应性香蕉时,情况肯定不是这样的。

但是Event [a]似乎是一种合理的方式来表示一组巧合事件。你为什么要把它压平?

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36943608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档