【发布时间】:2019-11-12 00:23:09
【问题描述】:
我正在制作一个实时更新图表,为此,我制作了一个包含所需数据的单独文件。我使用 AJAX 在我的主页上提出了一个请求,以便我可以将数组放入主页。但是由于某种原因,我不能在请求之外使用这个数组。我只需要在零件内部使用这个数组。
这是我所拥有的:
<script>
$(document).ready(function(){
$.getJSON("loadchart.php", function(data){
var sensor1 = data[0];
var sensor2 = data[1];
var sensor3 = data[2];
var sensorsum = data[3];
});
});
console.log(sensor1);
//My chart stuff down here
当我尝试控制数组的日志时,它给出了一个错误:
Uncaught ReferenceError: sensor1 is not defined
at main.php:107
这是我尝试的新功能:
async () => {
async function foo() {
return $.ajax({
url: "loadchart.php",
success: function(data){
return data;
}
});
}
var result = await foo();
console.log(result);
};
【问题讨论】:
-
您的错误来自范围问题顺便说一句,但主要问题是上面的链接。
-
您无法读取变量“sensor1”,因为该变量稍后在作用域中声明,因为 ajax 响应是异步的,并在读取该变量后调用。检查@ASDFGerte 发布的链接。
-
@ASDFGerte 仅将其从 AJAX 请求中取出不是更简单的解决方案吗?
-
@ASDFGerte 我将不得不更改我的 $.getJSON?
-
@Matheus 这里是jsfiddle,其中包含一些使用 jquery 的延迟对象示例,希望对您有所帮助
标签: javascript arrays ajax