我是一名经验丰富的软件开发人员,但对于JS和node来说,我还是个新手。我不是超级嵌套代码的狂热爱好者,所以我一直在尝试将回调分解到它们自己的函数中。不过,我在弄清楚如何在回调触发时维护作用域时遇到了问题。深入研究后,我读到如果我在回调上创建一个闭包,它将会工作,但它似乎不会以我预期的方式工作。
这是一个非常简单的代码版本,它对我来说不起作用:
function writeBody()
{
res.end("<h1> Hooray! </h1>");
}
http.createServer(function(req, res)
{
res.writeHead('Content-Type', 'text/html');
setTimeout(function(){writeBody()}, 2000);
}).listen(8000);
我以为通过将writeBody()调用包装在function()闭包中,我就可以在超时后获得所需的作用域,但是当writeBody()触发时,我得到
ReferenceError:未定义res
谁能告诉我我做错了什么愚蠢的事情?
https://stackoverflow.com/questions/4357881
复制相似问题