Добрый день, всем.
Столкнулся с тем, что код выполняется не в той последовательности, в которой мне нужно.
В ходе работы функции startGame идет проверка были ли инициализированны переменные и, если нет, то вызывает функцию initialization. При инициализации пользователь должен ввести определенные данные и нажать на кнопку отправки данных. При этом параметру player.initialized присваивается значение true. По завершению работы этой функции(т.е. после нажатия пользователем на кнопку initializationOk), должен выполниться блок команд, но только в том случае, если пользователь проинициализирован.
В действительности получается так, что пока пользователь вводит свои данные, javascript уже проходит по всей функции startGame и после завершения функции initialization в startGame не возвращается.
Мне казалось логичным, что следующие действия должны выполняться только по завершению функции initialization, однако это не так. Подскажите, пожалуйста, как приостановить выполнение скрипта, до завершения работы пользователя и возобновить после того, как пользователь ввел все данные.
Вот функции в сокращенном варианте:
var startGame = function(playerLogin) {
var initialized = false;
console.log(initialized + " до if");
if( !isInitialized(playerLogin)) {
initialization(playerLogin);
console.log(initialized + " в if");
} else {
initialized = true;
}
console.log(initialized + " после if");
test("текст");
if (player.initialized == true) {
//В эту секцию уже не попадаю
}
}
var initialization = function(playerLogin) {
player = new Player(playerLogin);
//немного кода, ввод пользовательских данных
$("#initializationOk").click(function(){
//еще немного кода и установка флага, что пользователь инициализирован
player.initialized = true;
});
}