我应该拔掉Bacon.Bus的单值流吗?

时间:2015-11-09 06:21:52

标签: javascript frp bacon.js

E.g。

var stream = new Bacon.Bus();
for(var i = 0; i < 4; i++) {
  stream.plug(Bacon.later(3000, 'value');
}

而不是for-loop我可能会对某些异步的东西进行回调+其他值也会被推送到流中。

1 个答案:

答案 0 :(得分:2)

只要流结束(流中有Bacon.end事件),就不需要拔掉流。培根非常聪明,可以处理结束流而不会造成内存泄漏。

如果您无法自然地结束流,但知道您只对一个值感兴趣,则可以使用.take(1)创建单个值流。

使用bus.plug动态地将流添加到总线通常表明应用程序存在设计缺陷。在没有看到代码的情况下提供精确的建议是不可能的,但是您应该考虑重新组织代码,以便在开始时创建流链,并且只有值是动态的。它可能涉及使用flatMap:)