我正在学习使用梦幻般的Bacon.js库进行功能反应式编程.将处理程序添加到属性或流很容易:
handler = function(value){... do something ...}
property.onValue(handler)
Run Code Online (Sandbox Code Playgroud)
在某个地方说我要取消这个订阅,就像这样(伪代码):
property.unsubscribe(handler)
Run Code Online (Sandbox Code Playgroud)
有没有办法用Bacon.js做到这一点?
rai*_*ska 11
以上两个答案都是正确的.就个人而言,我从未使用过任何一种解决方案.实际上,它们主要用于内部目的和编写自定义组合器和集成.
所以我建议组合使用take,takeWhile和takeUntil.在FRP应用程序中,触发需求的信号通常可以建模为EventStream.在那种情况下你可以做到
var data, stopper // EventStreams
data.takeUntil(stopper).onValue( .. )
Run Code Online (Sandbox Code Playgroud)