bacon.js 中的 merge 和 toProperty 有什么作用

What does merge and toProperty do in bacon.js

我刚刚开始使用 bacon.js 并试图找出它是如何工作的。 在以下代码中,asEventStream returns 是一个 eventStream,并且在捕获模糊事件时,它会发出一个假值,据我所知。 merge 和 toProperty 有什么作用我无法从代码中获取它。

var blur = $(window).asEventStream('blur').map(function() {
  return false;
});
var focus =  $(window).asEventStream('focus').map(function() {
  return true;
});
var focused = focus.merge(blur).toProperty(true);

focused 是一个包含 blurfocus 流的所有事件的流。 focused 也是 属性,这意味着只要有人订阅它,他们就会立即从流中收到最新的值。 true 被指定为默认的起始值,如果还没有值通过。

说这是 运行 下一个:

focused.onValue(function(x) {
  console.log('received', x);
});

'received true' 将立即打印到屏幕上。 If/when window 失去焦点,将打印 'received false'。 If/when window 再次聚焦,'received true' 将被打印。