我构建了以下函数,该函数根据传递给函数的已定义对象属性将电子邮件路由到用户或管理员。当通过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);
});
};