是否有可能在IIFE中异步获取数据?

时间:2016-09-17 05:39:49

标签: javascript

每当我尝试异步执行此请求时,变量永远不会及时解析以返回值。这是因为我用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;})();

0 个答案:

没有答案