我是Javascript的新手并且遵循本教程:http://mcavage.me/node-restify/#Error-handling
server.get('/hello/:name', function(req, res, next) {
return database.get(req.params.name, function(err, user) { // Why call "return" here?
if (err)
return next(err);
res.send(user);
return next();
});
});
第二行调用return
虽然我尝试了return
,但它也有效。有人可以在这里阐明调用"返回"这里?感谢。
基于@Pointy的回答,我只想补充说这个问题假设" next()"函数不会返回任何值。
答案 0 :(得分:6)
return
语句导致函数调用在该点退出。如果语句包含表达式,则该函数将表达式的值返回给调用环境。
在这种情况下,第一行中的函数(if
语句)检测到错误,因此它将该错误传递给它自己的回调(" next&#引用的函数) 34;参数)。然后它返回该函数返回的任何内容。
如果没有该行的return
语句,该函数的行为将会有很大的不同,因此它实际上并没有“工作”#34;没有它。它有时可能有效,但由于该语句涉及错误处理,除非出现错误,否则您将无法看到该错误。