Jak coś odpowiednika lockw 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. Bpodnosi zdarzenie onclick. Jeśli Bjest w event-stateoczekiwania wydarzenie dla Bbyć w ready-stateprzed rozmnożeniowego. Jeśli Bjest w ready-state, Bjest zablokowany i ustawiony na event-state, to zdarzenie jest propagowane. Gdy propagacja zdarzenia zostanie zakończona, Bjest ustawiona na ready-state.
Widziałem, jak można zrobić coś podobnego, po prostu dodając i usuwając klasę ready-statez 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?