Processing.js线程

时间:2014-09-03 07:24:45

标签: javascript ajax processing.js

我的processing.js文件中有一个函数,它调用一个AJAX脚本来返回一个数组,我想为我的代码定义一些简单的起始变量。我希望在执行代码之后的任何其他代码部分之前完成此函数。 当我运行我的代码时,setup()阶段的警报和draw()中的第一个警报返回" undefined"而draw()阶段的下一次迭代将返回我需要的实际数组。

处理代码:

var loadArray;

setup() {

  loadArray = new Array();

  js_GetArray(function(data) {
        loadArray = data;
    });

    alert(loadArray[1]);
    alert(loadArray[2]);
}

void draw()
{  
    alert(loadArray[k]);
    k++;
}

AJAX:

<!-- Read the vars numbers from the mysql database and return them -->
<script language="JavaScript" type="text/javascript">
    function js_GetArray(callback) {
        $.get( "load.php", function( actiondata ) {
            var obj = JSON.parse(actiondata);
            callback(obj);
        });
    }
</script>

有没有办法强制程序完成js_GetArray调用,然后再转到其余的代码?

2 个答案:

答案 0 :(得分:1)

如果是在加载页面的过程中,那么使用标志作为调用已返回的指示呢?

var loadArray;
var isloaded = false;

setup() {

  loadArray = new Array();

  js_GetArray(function(data) {
        loadArray = data;
        isloaded = true;
        alert(loadArray[1]);
        alert(loadArray[2]);
    });
}

void draw()
{  
    if(isloaded)
    {
        alert(loadArray[k]);
        k++;
    }
}

修改 我已将警报移到回调函数中。

答案 1 :(得分:0)

作为给定答案的替代答案,我已经在processingjs.org网站上广泛介绍了这一点,所以你可能想要读一读:http://processingjs.org/articles/PomaxGuide.html#interface