Tha*_*s P 6 javascript node.js express
我不明白为什么代码继续运行,即使在return和res.send()被调用之后.这是一个有助于理解的GIST.
更新:
好了,在社区的帮助下现在发现并了解问题是返回res.send();发生异步,并行console.log().
在这种特定情况下,解决方案是内部包装if/else.
感谢@Tom和@PaulPro!
Tom*_*Tom 15
该Hi!如果使用下面的代码(注意,没有文本打印在控制台上return旁边res.send).
app.get('/asd', function (req, res) {
res.send('OK');
console.log('Hi!');
});
Run Code Online (Sandbox Code Playgroud)
以下代码片段不会Hi!在控制台上打印,因为请求处理函数随res.send('OK');表达式一起结束
app.get('/asd', function (req, res) {
return res.send('OK');
console.log('Hi!');
});
Run Code Online (Sandbox Code Playgroud)
您可以Hi!在第一个实例中看到的原因是该res.send函数是异步执行的,即方法发送响应在JavaScript事件循环中排队,请求处理函数继续执行并console.log使用Hi!参数调用.
我希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
5496 次 |
| 最近记录: |