错误#1023:发生堆栈溢出

时间:2014-09-16 09:47:02

标签: actionscript-3

我已经阅读了很多有关此错误的帖子。但它并没有解决我的问题。在我的例子中,有循环通过这样的两个函数:

function getData() {
    //doing some stuff here
    call_socket("data", callback); //When response from socked server has been received, call callback function
}
function callback(data:Object) {
    if(!data) { getData(); } //if data is null, continue loop
    else { //stop the loop }
}

我在这两个函数上都出错:

Error #1023: Stack overflow occurred.

我知道这个错误告诉我我反复调用这些函数,但就我而言,这就是我要做的事情。

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

问题在于代码的逻辑。只要考虑一下call_socket在一段时间内没有返回数据的情况。这将导致回调和getData的多个圈子。根据您的应用程序,您可以通过两种方式获得所需的结果:

  1. 你应该使用一些事件来通知你的应用程序的其他部分数据已经到达(而不是回调)
  2. 您可以在定义的时间范围内轮询服务器。你可以使用Timer。