В JS асинхронная операция завершится неизвестно когда: на следующеё итерации event loop или через сотню. И чтобы поток выполнения был предсказуемым, приходится делать те же штуки, что и в многопоточном приложении, например, временно закрывать кусок кода от выполнения lock’ом.
И к самим локам обычно нет вопросов, но если кто-то напишет коммент, что это лок от возможного Race Condition, то обязательно кто-то придёт и скажет “В JS не бывает рейс кондишенов, он же однопоточный“.
Так вот. Как правильно называть ошибку синхронизации в JS, если не Race Condition?