Поскольку ответа еще не было, я попробую. Я думаю, я знаю, что вы пытаетесь сделать.
Все ваши асинхронные вызовы будут иметь дополнительный обратный вызов. Таким образом, вы можете вызывать функцию или настраивать некоторые пользовательские события.
http://api.jquery.com/bind/
Тогда вы можете «связать» вещи с этими событиями. Таким образом, другие функции вызывают, когда это событие или функция вызывает. По сути обработчики событий и слушатели.
Так как в вашем приложении происходят разные вещи, просто слушайте события и включайте или выключайте их, можно ли их активировать или использовать в любой момент времени.
Вы также можете сделать это, так как я думаю, что вы изначально пытались использовать логические флаги, но это может стать довольно грязным в зависимости от того, сколько у вас есть.