【发布时间】:2018-09-05 20:45:54
【问题描述】:
我对 RxJs 有疑问。
单击一次时,我需要在 console.log 中记录一条消息,单击两次按钮时需要记录不同的消息。问题是:
如果我第一次点击开始 - 没有任何反应 - 错误 (我应该会看到第一条消息“单击”)
-
然后,如果我单击按钮,然后(一秒钟后)再次单击,第二次单击时我可以看到两条消息 - 错误(每个操作我应该只看到一条消息)
- 当我单击按钮时,稍等片刻,再次单击,稍等片刻,然后再次单击,最后一次单击时,我将在 console.log 中看到三条消息 - 错误(每个操作我应该只看到一条消息)
- 之后,如果我单击两次(双击),我将看到 5 条消息用于双击,1 条用于单击 - 错误(我应该只看到一条消息“双击”)
我想要的是:
- 如果我点击一次,我只需要看到一条消息('一次点击')
- 如果我单击两次(双击),我仍然只需要看到一条消息('双击')
- 如果我点击两次以上 - 没有任何反应
有什么帮助吗?
【问题讨论】:
-
请将您的代码也放入您的问题中
-
是的,我忘记了,谢谢
-
您是否尝试过 angulars (dblclick) 绑定而不是复杂的 observable?
-
当然可以,但我需要另一种解决方案来解决 dblclick 无法正常工作的 ios
-
仅供参考,您收到每条消息的倍数的原因是因为您每次调用
test()函数时都在重新订阅 observable。您应该在可观察的订阅回调触发后取消订阅。这就引出了一个问题,你为什么首先使用 observables?看起来像一个普通的点击处理程序应该做的,是吗?
标签: javascript angular rxjs