Я опытный разработчик программного обеспечения, но довольно новичок в JS и node. Я не большой поклонник супер-вложенного кода, поэтому я пытаюсь разбить callbacks на свои собственные функции. У меня возникли проблемы, хотя вы выяснили, как поддерживать область действия, когда срабатывает обратный вызов. Копая вокруг, я читал, что если бы я создал закрытие над обратным вызовом, это сработало бы, но, похоже, оно не работает так, как я ожидал.
Здесь очень простая версия кода, который не работает для меня:
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() в закрытии функции(), я бы получил область, которая мне нужна после таймаута, но когда fireBody() срабатывает, я получаю
ReferenceError: res не определен
Может ли кто-нибудь сказать мне, что за то, что я делаю неправильно?