为什么这个Javascript对象为空?

时间:2018-02-25 12:32:13

标签: javascript json api object

所以我有一个脚本从我设置的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'输出:

First console output

我认为这是一个有效的对象。

下一个'console.log'没有输出,因为我之前收到错误:

Split() function error

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

我得到了:

Empty object

只是一个空对象。

  

注意:有一个类似的问题How do I return the response from an asynchronous call?,但我的问题不同。我知道异步是如何工作的,我甚至没有在我的html文件上链接jQuery。这是通过p5.js库完成的。

如果还有其他信息需要评论。

0 个答案:

没有答案