我正在嘗試通過 json 加載一個數組,這個函數主要是從 W3 學校偷來的: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();}我有第二個函數應該繪制數據圖表,但讓我們假設它只是打印數組。(它也不會繪制它們的圖表,因此這不僅僅是顯示錯誤):function create_graph(data) { console.log(data);}現在,在任何功能之外,我正在這樣做:var data;load_json_data( "./test.json", function(return_data) { data = return_data; });console.log("Loaded Data: " + data)create_graph(data);所以我加載“./test.json”并將其傳遞給函數。不幸的是,輸出顯示數據未定義,但是當我手動訪問變量時,我得到了正確的輸出:Loaded Data: undefinedReceived Data: undefined> data(6) [0.6, 0.55, 0.45, 0.4, 0.7, 0.66]我來自 c 和 python,所以我假設解釋器對我隱藏了一些東西。為什么在加載函數運行后變量未定義,但在訪問它時已定義?
JS:加載的 json 未定義,即使它不是
達令說
2023-08-18 14:01:31