删除按钮单击事件,直到上次重置事件不起作用

时间:2016-09-19 06:26:01

标签: javascript reactive-programming frp cyclejs xstream-js

使用cycle.js和xstream,我想计算按钮点击次数并重置它们。

我计划通过计算上次重置后的所有按钮点击来实现此目的。为此,我考虑放弃所有按钮点击,直到最后一次重置,并计算剩下的内容。

但是我留下了两个无法正常工作的按钮

有什么建议吗?

{{1}}

1 个答案:

答案 0 :(得分:1)

const resetClick$ = dom.select("#resetButton")
  .events("click")
  .map(ev => 0)

const button1Click$ = dom.select("#button2")
    .events("click")
    .map(ev => 1)

const button1WithReset$ = Stream.merge(button1Click, resetClick$)
  .fold((acc, n) => { 
      if (n == 0) return 0
      else return acc + n
  }, 0)

这应该可以解决问题。然后,您可以对button2Click执行相同的操作。

通过合并button1click$resetClick$,我们会得到一个流,可以发出01。使用fold,我们可以在每次合并流发出0时重置计数器。