отрабатывает все верно, ты просто не понимаешь идею.
вот смотри, допустим есть вот такой код:
function one () {
setTimeout(function () { console.log(1); }, 1000);
console.log(2);
}
one();
setTimeout - эта функция, которая вызывает другую функцию, которая должна выполниться через 1 секунду
т.е. сначала в консоль упадет 2, а потом 1 (через секунду)
примерно такая же пертушка и с аякс. ты говоришь, что нужно выполнить функцию после того как придет ответ. при этом функция которую ты дергаешь getDebugMode - завершается