无法更改响应中的全局变量(JavaScript)

时间:2019-11-17 11:15:30

标签: javascript

let actualJSON;

function loadJSON(callback) {
    let xobj = new XMLHttpRequest();
    xobj.overrideMimeType("application/json");
    xobj.open('GET', 'generated.json', true);
    xobj.onreadystatechange = function () {
        if (xobj.readyState == 4 && xobj.status == "200") {
            callback(xobj.responseText);
        }
    };
    xobj.send(null);
}

function init() {
    loadJSON(function(response) {
         actualJSON = JSON.parse(response);
    });
}

{
    init()
    alert(actualJSON)
}

JSON文件有效,并且alert(actualJSON)未定义。如何在回调函数中更改它?所有答案都在回调函数中调用alert或console.log,并且可以,但是我需要更改一个变量并将其用于其他函数中。如何等待直到变量将改变?

我已经看到了:How do I return the response from an asynchronous call? 但是我不知道如何在没有承诺的情况下用纯JS编写它。我只想加载一个本地json文件并将其用作对象

0 个答案:

没有答案