我正在尝试等待 AJAX 请求完成。如果该方法xmlhttp.open
支持async = false
但 Ant Galio 不支持此选项并且只允许异步请求,那将很容易。问题是如何等待回调被调用。
var ajaxFinished = false;
var xmlhttp = new XMLHttpRequest();
this.debug("-- onreadystatechange is being defined");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
ajaxFinished = true;
var data = xmlhttp.responseText;
if (xmlhttp.status == 200) {
that.debug('downloadSettings: SUCCESS');
[...]
} else {
that.debug('downloadSettings:');
that.debug('-- Error: ');
that.debug('-- ResponseText: "'+data+'"')
}
}
}
while (ajaxFinished == false) {
}
this.debug("-- open connection");
xmlhttp.open("GET", requestUrl, true); /* Ant Galio does not support synchronous */
this.debug("-- send");
xmlhttp.send();
我正在寻找某种积极的等待。我知道另一种解决方案,但我对不需要更改比我上面的示例更多的代码的解决方案感兴趣。
谢谢!