如何在JavaScript中实现相当于lock C#的东西?
所以,要解释一下我在想一个简单的用例是:
用户点击按钮B B提出一个onclick事件。 如果B处于event-state则事件等待B在传播之前处于ready-state 。 如果B处于ready-state ,则B被锁定并被设置为event-state ,则事件传播。 当事件的传播完成时, B被设置为ready-state 。
我可以通过添加和删除按钮中的类ready-state来看看可以做些什么接近的事情。 但是,问题是用户可以比可以设置变量的速度更快地单击一次按钮两次,因此在某些情况下,此尝试将失败。
有没有人知道如何实现一个不会在JavaScript中失败的锁?
How could something equivalent to lock in C# be implemented in JavaScript?
So, to explain what I'm thinking a simple use case is:
User clicks button B. B raises an onclick event. If B is in event-state the event waits for B to be in ready-state before propagating. If B is in ready-state, B is locked and is set to event-state, then the event propagates. When the event's propagation is complete, B is set to ready-state.
I could see how something close to this could be done, simply by adding and removing the class ready-state from the button. However, the problem is that a user can click a button twice in a row faster than the variable can be set, so this attempt at a lock will fail in some circumstances.
Does anyone know how to implement a lock that will not fail in JavaScript?
更多推荐
发布评论