未捕获的参考错误," ..."没有定义

时间:2017-12-14 22:17:27

标签: javascript p5.js

我尝试从5个不同的网站加载3个字符并将它们连接成一个字符串,即使我正在使用try& catch语句字符串说'未被引用的引用错误'任何带有数字的代码都会导致意外的令牌错误'我目前正在使用P5.js框架,但愿意尝试普通的.js。

由于

我的代码:

var data;
function setup(){

    var url = [];

    url[0] = 'https://assess.joincyberdiscovery.com/challenge-files/clock-pt1?verify=NRpxYLm9hCkAkhy0OSjEPA%3D%3D.json'
    url[1] = 'https://assess.joincyberdiscovery.com/challenge-files/clock-pt2?verify=NRpxYLm9hCkAkhy0OSjEPA%3D%3D.json'
    url[2] = 'https://assess.joincyberdiscovery.com/challenge-files/clock-pt3?verify=NRpxYLm9hCkAkhy0OSjEPA%3D%3D.json'
    url[3] = 'https://assess.joincyberdiscovery.com/challenge-files/clock-pt4?verify=NRpxYLm9hCkAkhy0OSjEPA%3D%3D.json'
    url[4] = 'https://assess.joincyberdiscovery.com/challenge-files/clock-pt5?verify=NRpxYLm9hCkAkhy0OSjEPA%3D%3D.json'

    try{
        for (let i = 0; i < 5; i++){
            data += loadJSON(url[i], gotData, 'jsonp') + ' '
        }
    } catch (data){
        console.log('oh well');
    }

}

function draw(){
    createCanvas(400,400);
    background(225);
    text(data, 0, 200);
}

function gotData(data){
    text(data, 100, 200);
}

1 个答案:

答案 0 :(得分:0)

来自the P5.js reference

  

从文件或URL加载JSON文件,并返回一个Object。请注意,即使JSON文件包含数组,也会返回一个Object,索引号为键。

     

此方法是异步的,这意味着它可能无法在草图中的下一行执行之前完成。

最后一行解释了发生了什么:loadJSON()函数是异步的,这意味着它不会直接返回任何内容。所以这样的线条没有意义:

data += loadJSON(url[i], gotData, 'jsonp') + ' '

请参阅参考中的示例以了解如何正确使用loadJSON()函数,但基本上您需要使用回调函数或者需要使用preload()函数。