函数返回undefined,即使它不是

时间:2016-10-04 20:49:30

标签: javascript function undefined

我正在制作一个迷宫发生器。
我的代码是这样的:

function generate() {
    //generate one iteration of a maze
}
function createmaze() {
    interval = window.setInterval(function() {
        //create the maze by calling generate repeatedly, and some other stuff (which works!)
        if(stop condition) {
            draw(maze);
            return(maze);
            window.clearInterval(interval);
        }
    }, 0);
}

alert(createmaze());

function draw() {
    //draws maze
}

我的问题是,虽然绘制函数运行正常并且绘制迷宫应该是,但createmaze返回undefined。它不会成为一个问题,除了我需要迷宫更多的代码,不会得到它。
编辑:我知道我使用setinterval错误的0,但不知何故仍然有效

1 个答案:

答案 0 :(得分:1)

这里的问题是你的间隔在4毫秒内完成,这是浏览器能够执行延迟任务的最快速度。

此外,不会捕获从间隔返回的值,因此createmaze()函数本身没有返回值。这就是你看到未定义的原因。

您需要开始使用promises或使用回调结构,以捕获区间结果的异步性质。