Jak coś odpowiednika lock
w C # można zaimplementować w JavaScript?
Aby więc wyjaśnić, o czym myślę, prosty przypadek użycia to:
Użytkownik klika przycisk B
. B
podnosi zdarzenie onclick. Jeśli B
jest w event-state
oczekiwania wydarzenie dla B
być w ready-state
przed rozmnożeniowego. Jeśli B
jest w ready-state
, B
jest zablokowany i ustawiony na event-state
, to zdarzenie jest propagowane. Gdy propagacja zdarzenia zostanie zakończona, B
jest ustawiona na ready-state
.
Widziałem, jak można zrobić coś podobnego, po prostu dodając i usuwając klasę ready-state
z przycisku. Jednak problem polega na tym, że użytkownik może kliknąć przycisk dwa razy z rzędu szybciej niż można ustawić zmienną, więc ta próba zablokowania w niektórych okolicznościach zakończy się niepowodzeniem.
Czy ktoś wie, jak zaimplementować blokadę, która nie zawiedzie w JavaScript?