第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JS:加載的 json 未定義,即使它不是

JS:加載的 json 未定義,即使它不是

達(dá)令說 2023-08-18 14:01:31
我正在嘗試通過 json 加載一個(gè)數(shù)組,這個(gè)函數(shù)主要是從 W3 學(xué)校偷來的:function load_json_data(path, callback) {  var httpRequest = new XMLHttpRequest();  httpRequest.onreadystatechange = function() {    if (httpRequest.readyState === 4 && httpRequest.status === 200) {      var data = JSON.parse(httpRequest.responseText);      if (callback) callback(data);    }  };  httpRequest.open('GET', path);  httpRequest.send();}我有第二個(gè)函數(shù)應(yīng)該繪制數(shù)據(jù)圖表,但讓我們假設(shè)它只是打印數(shù)組。(它也不會(huì)繪制它們的圖表,因此這不僅僅是顯示錯(cuò)誤):function create_graph(data) {    console.log(data);}現(xiàn)在,在任何功能之外,我正在這樣做:var data;load_json_data(  "./test.json",  function(return_data) {    data = return_data;  });console.log("Loaded Data: " + data)create_graph(data);所以我加載“./test.json”并將其傳遞給函數(shù)。不幸的是,輸出顯示數(shù)據(jù)未定義,但是當(dāng)我手動(dòng)訪問變量時(shí),我得到了正確的輸出:Loaded Data: undefinedReceived Data: undefined> data(6) [0.6, 0.55, 0.45, 0.4, 0.7, 0.66]我來自 c 和 python,所以我假設(shè)解釋器對(duì)我隱藏了一些東西。為什么在加載函數(shù)運(yùn)行后變量未定義,但在訪問它時(shí)已定義?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

當(dāng)你提供一個(gè) set 的回調(diào)時(shí)data,你基本上是在告訴 JS“發(fā)出 HTTP 請(qǐng)求,data完成后設(shè)置變量,但同時(shí)繼續(xù)運(yùn)行后面的代碼?!?如果要data設(shè)置,則必須將使用的代碼data移至回調(diào)中:


var data;

load_json_data(

? "./test.json",

? function(return_data) {

? ? data = return_data;

? ? console.log("Loaded Data: " + data)

? ? create_graph(data);

? }

);

您還應(yīng)該考慮遷移到fetch API以及使用Promise:

function load_json_data(path, callback) {

? return fetch(path).then(res => res.json());

}


load_json_data("./test.json", function(data) {

? console.log("Loaded data: " + data);

? create_graph(data);

});


查看完整回答
反對(duì) 回復(fù) 2023-08-18
  • 1 回答
  • 0 關(guān)注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)