function getJsonData(cb) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var javaobj = JSON.parse(xhttp.response);
cb(javaobj);
}
}
xhttp.open("GET", "json_output.json", true)
xhttp.send();
}
function CreateTableFromJSON() {
getJsonData(function(myBooks){
alert(myBooks)
});
}
You can use javascript callback
function getJsonData() {
return new Promise(resolve => {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var javaobj = JSON.parse(xhttp.response);
resolve(javaobj);
}
}
xhttp.open("GET", "json_output.json", true)
xhttp.send();
})
}
async function CreateTableFromJSON() {
var myBooks = await getJsonData();
alert(myBooks)
}
Or you can use Promise/async/await
function getJsonData() {
return new Promise(resolve => {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var javaobj = JSON.parse(xhttp.response);
resolve(javaobj);
}
}
xhttp.open("GET", "json_output.json", true)
xhttp.send();
})
}
function CreateTableFromJSON() {
getJsonData().then(myBooks => alert(myBooks))
}
Or, we can use then
for Promise