Javascript ESLint一致返回错误,但为什么?

Javascript ESLint一致返回错误,但为什么?,javascript,node.js,eslint,Javascript,Node.js,Eslint,我构建了以下函数,它根据传递到函数中的已定义对象属性将电子邮件路由到用户或管理员。通过ESLint运行此命令时,我看到整个函数会弹出信息,说明: 应在函数“emailRouter”的末尾返回值。(一致返回) 我已经通读了ESLint文档,正如错误所示,它与不一致的返回值有关。在查看代码时,我不明白为什么会出现这种情况。我通过每条路线返回回调。如果我向最终的sendEmail函数添加一个返回,那么这个错误就会消失,但似乎不是正确的方法 有什么建议吗?这可能是在同一个函数上启动时间过长,代码变白的情

我构建了以下函数,它根据传递到函数中的已定义对象属性将电子邮件路由到用户或管理员。通过ESLint运行此命令时,我看到整个函数会弹出信息,说明:

应在函数“emailRouter”的末尾返回值。(一致返回)

我已经通读了ESLint文档,正如错误所示,它与不一致的返回值有关。在查看代码时,我不明白为什么会出现这种情况。我通过每条路线返回回调。如果我向最终的sendEmail函数添加一个返回,那么这个错误就会消失,但似乎不是正确的方法

有什么建议吗?这可能是在同一个函数上启动时间过长,代码变白的情况

const emailRouter = function emailRouter(router, callback) {
  if (typeof router !== 'object') {
    return callback(new Error('No routing object given.', null));
  }

    // Mail is for admin
  if (router.direction === 'admin') {
    console.info(`Send to admin due to: ${router.reason}`);
// eslint-disable-next-line max-len
    sendEmail(config.admin.email, config.admin.name, router.reason, router.email.body, (err, result) => {
      if (err) {
        return callback(err, null);
      }
      return callback(null, result);
    });
  }

  // Mail is for a user
  if (typeof router.useremail !== 'string' && router.useremail.length() < 1) {
      // User hasn't got an email set. Forward the notification to channel?
    return callback(new Error('User does not have an email address, nothing to mail.'), null);
  }

// eslint-disable-next-line max-len
  sendEmail(router.useremail, router.user, router.email.subject, router.email.body, (err, result) => {
    if (err) {
      return callback(err, null);
    }
    return callback(null, result);
  });
};
const emailRouter=函数emailRouter(路由器,回调){
if(路由器类型!==“对象”){
返回回调(新错误('未给出路由对象',null));
}
//邮件是给管理员的
如果(router.direction==='admin'){
info(`Send to admin due:${router.reason}`);
//eslint禁用下一行最大长度
sendEmail(config.admin.email,config.admin.name,router.reason,router.email.body,(err,result)=>{
如果(错误){
返回回调(err,null);
}
返回回调(null,result);
});
}
//邮件是给用户的
if(typeof router.useremail!='string'&&router.useremail.length()<1){
//用户尚未设置电子邮件。是否将通知转发到频道?
返回回调(新错误('用户没有电子邮件地址,没有邮件'),null);
}
//eslint禁用下一行最大长度
sendEmail(router.useremail,router.user,router.email.subject,router.email.body,(err,result)=>{
如果(错误){
返回回调(err,null);
}
返回回调(null,result);
});
};

在两个
分支中,如果您返回
回调(…)
,但主线不返回任何内容。在任何情况下,返回值似乎对任何内容都没有贡献,因此我将从该函数中删除所有
return
关键字。我认为按照