Bacon.js:流和属性之间的实际区别

Nic*_*uin 4 javascript events bacon.js

作为bacon.js的新手,我似乎无法理解事件流和属性之间的区别.

  • 属性是从流构建的(除了用.constant?构建的属性)
  • 他们有大多数共同的方法
  • 订阅它们的方式相同

有人可以解释这些差异以及何时使用哪些?

在下面的示例中,streamproperty具有完全相同的行为.我恐怕没有超越这个.

var stream = Bacon.sequentially(250, [1, 2, 3, 4, 5, 6, 7, 8]);
var property = stream.toProperty();

stream.onValue(function (val) {
    console.log("Stream", val);
});

property.onValue(function (val) {
    console.log("Property", val);
});
Run Code Online (Sandbox Code Playgroud)

pha*_*dej 5

Bacon.js 属性是FRP文献中的行为,而EventStreams只是事件.它们看起来非常相似,但在语义上它们非常不同.

通过阅读此答案,熟悉FRP概念.

  • 如果我们考虑采样值,则有*previous*值,但在(continuos)系统内则没有.差异最终导致我们(可以)如何组合属性和事件,例如`animationProperty.sampledBy(renderTicksStream)`. (2认同)