Во время вызова alert(chosenOne);
обратный вызов Ajax еще не выполнен. Ajax асинхронный . Функция chooseChosenOne
не будет ждать окончания вызова Ajax, она немедленно вернется.
Вы можете работать только с возвращаемым значением в обратном вызове:
function chooseChosenOne() {
$.get("generate.php", function(data) {
var chosenOne = targetLocation[data.randomNumber];
alert(chosenOne);
}, "json");
}
Итак, вам нужно сделать так, чтобы ваша функция принимала обратный вызов, который вызывается, как только доступно значение:
function chooseChosenOne(callback) {
$.get("generate.php", function(data) {
callback(targetLocation[data.randomNumber]);
}, "json");
}
chooseChosenOne(function(theOne) {
// now do stuff with theOne here
});
Смотри также: