"返回"的重要性在这个Javascript代码中

时间:2015-01-04 00:33:13

标签: javascript restify

我是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()"函数不会返回任何值。

1 个答案:

答案 0 :(得分:6)

return语句导致函数调用在该点退出。如果语句包含表达式,则该函数将表达式的值返回给调用环境。

在这种情况下,第一行中的函数(if语句)检测到错误,因此它将该错误传递给它自己的回调(" next&#引用的函数) 34;参数)。然后它返回该函数返回的任何内容。

如果没有该行的return语句,该函数的行为将会有很大的不同,因此它实际上并没有“工作”#34;没有它。它有时可能有效,但由于该语句涉及错误处理,除非出现错误,否则您将无法看到该错误。