gpt4 book ai didi

javascript - 从 javascript 函数返回 json 数据

转载 作者:行者123 更新时间:2023-12-02 23:40:19 25 4
gpt4 key购买 nike

以下函数从文件中读取 JSON 数据。

function getJsonData(){

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function (){
if(xhttp.readyState == 4 && xhttp.status == 200){
var javaobj = JSON.parse(xhttp.response);
return javaobj;
}
}

xhttp.open("GET", "json_output.json", true)
xhttp.send();
}

何时 getJsonData下面调用,返回 undefined

function CreateTableFromJSON() { 
var myBooks = getJsonData();
alert(myBooks)//returns undefined
}

最佳答案

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)
});

}

您可以使用 JavaScript 回调

<小时/>
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)

}

或者你可以使用 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))
}

或者,我们可以使用 then 来表示 Promise

关于javascript - 从 javascript 函数返回 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com