У меня есть функция, где тревога работает:Вызов функции после запроса AJAX не работает в JavaScript
function RequestNext() {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
MyCard = GetCard(xhr.responseText);
**alert(MyCard.GetNo());**
return MyCard;
}
};
xhr.open("GET", "../../HttpRequest_Next.php" , true);
xhr.send(null);
}
Тогда у меня есть эта другая функция, где первый один вызывается, и то же самое предупреждение не работает:
function Start(){
var MyCard = RequestNext();
alert("Patience.js");
**alert(MyCard.GetNo());**
alert("test2");
//alert(Card.GetKind());
//WriteCard(Card);
alert("test3");
}
Для информации эти функции представлены в 2 файлах.
Это азартное программирование. Это такой общий вопрос SO, который я бы хотел найти, действительно приятное сообщение в блоге, которое охватывает его и связывает с ним людей. Пока не нахожу. –
Функция _RequestNext() _ не имеет оператора _return_. Только ваша внутренняя анонимная функция имеет _return_. Поэтому, даже игнорируя проблему асинхронности, этот код не будет работать. – nnnnnn
Я понимаю оба комментария, но я не вижу, как я могу это сделать. Есть ли способ дождаться завершения Ajax до обработки остальной части моего кода? – Pink