所以我有一个脚本从我设置的API获取数据。它在一个循环中执行此操作,但它永远不会重复,因为我对它返回的对象有问题。
脚本如下所示:
<script>
function loop() {
var data = loadJSON("http://myapi.com/api"); //(not real API url)
console.log(data); //Logging this for debugging
numbers = data.data.split("-");
console.log(numbers); //Again, for debugging
//Setting the split data to each variable I that will use later
a = numbers[0];
b = numbers[1];
c = numbers[2];
d = numbers[3];
e = numbers[4];
//Do stuff with the data and then loop again
}
setInterval(loop, 300);
</script>
所以脚本工作正常,直到我到达'data.data.split(“ - ”)'部分。
第一个'console.log'输出:
我认为这是一个有效的对象。
下一个'console.log'没有输出,因为我之前收到错误:
'loadJSON'是我正在使用的库p5.js中的一个函数。它输出一个像它应该的对象。
来自api的JSON看起来像这样,我认为是有效的:
{
"data": "30-50-300-20-90"
}
所以我在问这个问题之前做了我的研究,我发现undefined意味着:
var data = 0; //Defined variable
data = 0; //Undefined variable
我尝试在函数之前定义变量并在每个变量之前写'var',但我仍然遇到同样的错误。
我还找到了this。它表示对象的状态与我记录的状态不同。这意味着当我记录它时有一些数据但是当我尝试split()时它没有相同的数据。
至少这是我的理解。
所以我做了:
console.log(JSON.stringify(data));
我得到了:
只是一个空对象。
注意:有一个类似的问题How do I return the response from an asynchronous call?,但我的问题不同。我知道异步是如何工作的,我甚至没有在我的html文件上链接jQuery。这是通过p5.js库完成的。
如果还有其他信息需要评论。