在Bacon.js中实现一个数字微调器

时间:2017-06-28 22:59:31

标签: javascript frp bacon.js

有一个文本字段和两个按钮,(+)和( - )。从按钮点击中获取值非常简单:

// provided plusStream contains +1 for each (+) click
// and minusStream -1 for each (-) click.
let value = plusStream.merge(minusStream).scan(0, (a, b) => a + b);

问题是,如何处理包含文本字段每个有效更改的数字的directChange流?

它应该以某种方式改变价值。此外,.scan()应该知道更改,以便下一个按钮单击addis或从更新的值中减去1。

1 个答案:

答案 0 :(得分:0)

我建议你试试Bacon.update。这可能有效:

Bacon.update(0,
  plusStream, (prev) => prev + 1,
  minusStream, (prev) => prev - 1,
  directChangeStream, (prev, updated) => updated
)