merge和toProperty在bacon.js中做了什么

时间:2015-08-18 11:22:03

标签: javascript bacon.js

我刚刚开始使用bacon.js并试图找出它是如何工作的。 在下面的代码中,asEventStream返回一个eventStream,当捕获一个blur事件时,它会发出一个false值,据我所知。 合并和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);

1 个答案:

答案 0 :(得分:1)

focused是一个包含blurfocus个流的所有事件的流。 focused也是属性,这意味着只要有人订阅它,它们就会立即从流中收到最新值。如果尚未输入任何值,则将true指定为默认的起始值。

说这是下次运行的:

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

'收到真'将立即打印到屏幕上。如果/当窗口失去焦点时,将打印“收到错误”。如果/当窗口再次聚焦时,将打印“接收为真”。