我应该从 Bacon.Bus 中拔出单值流吗?
Should I unplug single-value stream from Bacon.Bus?
例如
var stream = new Bacon.Bus();
for(var i = 0; i < 4; i++) {
stream.plug(Bacon.later(3000, 'value');
}
我可能有一些异步事件的回调,而不是 for-loop + 其他值也被推送到流中。
不需要拔流,只要结束即可(流中有Bacon.end
事件)。 Bacon 足够聪明,可以在没有内存泄漏的情况下处理结束流。
如果您无法让流自然结束,但知道您只对一个值感兴趣,则可以使用 .take(1)
.
创建单个值流
使用 bus.plug
将流动态添加到总线通常是应用程序设计缺陷的标志。没有看到您的代码就不可能给出准确的建议,但您应该考虑重新组织您的代码,以便在开始时创建流链,并且只有值是动态的。它可能会涉及使用 flatMap
:)
例如
var stream = new Bacon.Bus();
for(var i = 0; i < 4; i++) {
stream.plug(Bacon.later(3000, 'value');
}
我可能有一些异步事件的回调,而不是 for-loop + 其他值也被推送到流中。
不需要拔流,只要结束即可(流中有Bacon.end
事件)。 Bacon 足够聪明,可以在没有内存泄漏的情况下处理结束流。
如果您无法让流自然结束,但知道您只对一个值感兴趣,则可以使用 .take(1)
.
使用 bus.plug
将流动态添加到总线通常是应用程序设计缺陷的标志。没有看到您的代码就不可能给出准确的建议,但您应该考虑重新组织您的代码,以便在开始时创建流链,并且只有值是动态的。它可能会涉及使用 flatMap
:)