Rxjs 按下按钮时如何发出值?

Rxjs 按下按钮时如何发出值?,rxjs,Rxjs,我有一个按钮- 该按钮应在每次按下时增加输入字段的值。那很容易。我不知道的是如何在按下按钮时周期性地增加值,并在用户离开按钮或取消按下按钮时停止。以下是所有参与事件的可观察结果。我需要以某种方式将它们结合起来,以达到预期的效果。有什么帮助吗 const click = Observable.fromEvent(button, 'click'); const mousedown = Observable.fromEvent(button, 'mousedown'); const mouseup =

我有一个按钮-

该按钮应在每次按下时增加输入字段的值。那很容易。我不知道的是如何在按下按钮时周期性地增加值,并在用户离开按钮或取消按下按钮时停止。以下是所有参与事件的可观察结果。我需要以某种方式将它们结合起来,以达到预期的效果。有什么帮助吗

const click = Observable.fromEvent(button, 'click');
const mousedown = Observable.fromEvent(button, 'mousedown');
const mouseup = Observable.fromEvent(button, 'mouseup');
const mouseleave = Observable.fromEvent(button, 'mouseleave');
以下是观察家:

const observer = () => {
    console.log('click');
};
换句话说,我正在尝试使我的按钮与输入元素上的本机箭头按钮类似,类型为number。

我想我得到了:

  const button = document.getElementById('button');

  const click = Rx.Observable.fromEvent(button, 'click');
  const mousedown = Rx.Observable.fromEvent(button, 'mousedown');
  const mouseup = Rx.Observable.fromEvent(button, 'mouseup');
  const mouseleave = Rx.Observable.fromEvent(button, 'mouseleave');

  const observer = () => {
    console.log('click');
  }

  click.subscribe(observer);
  const notifier = mouseup.merge(mouseleave);
  const final = mousedown
    .switchMap(e => {
      return Rx.Observable.interval(200).takeUntil(notifier);
    })
    .subscribe(observer);