使用Bacon.js的多个事件流值

时间:2014-06-24 20:29:19

标签: javascript bacon.js

我有一个目前有2个输入的表单(数量会增加),用户可以在其中添加/编辑数字。在更改任何字段后,我想用两个数字进行计算。

使用基本的jQuery,这将是一件轻而易举的事情:

var f1 = $(".field-1"), f2 = $(".field-2"), n1, n2, result;
$(".field-1, .field-2").on("keyup", function(){
    n1 = f1.val();
    n2 = f2.val();
    result = n1 / n2;
});

使用Bacon.js做同样事情的最好方法是什么?

1 个答案:

答案 0 :(得分:1)

使用培根,这更简单:

function keyupValueStream(el) {
    return $(el).asEventStream("keyup").map(".target.value");
}
Bacon.combineWith(function(n1, n2) { return n1/n2; },
                  keyupValueStream(".field-1"),
                  keyupValueStream(".field-2")
).onValue(function(result) {
     // …
});