每当我尝试异步执行此请求时,变量永远不会及时解析以返回值。这是因为我用IIFE称呼它吗?
在我把它放入IIFE之前,它是异步工作的,当它只在同步工作时。我知道同步请求是魔鬼但是没有这个请求返回数据,整个页面无论如何都已经死了。我将在那里设置一个超时功能,但我想关注最初的问题。谢谢你的帮助!
var goldPrice = (function () {
var price;
//removed goldDataUrl with API info
var request = new XMLHttpRequest();
request.open('GET', goldDataUrl, false);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// Success!
price = JSON.parse(request.responseText).dataset.data[0][1];
}
else {
// We reached our target server, but it returned an error
}
}
request.onerror = function () {
// There was a connection error of some sort
};
request.send();
return price;})();