Javascript 在Bacon.js中实现数字微调器
有一个文本字段和两个按钮,(+)和(-)。从按钮单击中获取值非常简单:Javascript 在Bacon.js中实现数字微调器,javascript,frp,bacon.js,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流,它为文本字段的每个有效更改都包含一个数字 它应该
// 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()应该知道更改,以便单击“下一步”按钮或从更新的值中减去1。我建议您尝试。这可能会奏效:
Bacon.update(0,
plusStream, (prev) => prev + 1,
minusStream, (prev) => prev - 1,
directChangeStream, (prev, updated) => updated
)
另一种方法是从所有输入创建一个修改函数流,然后扫描该流。