我正在阅读John Papa's angular style guide并在异常处理部分下遇到此代码。有人可以向我解释reason
来自哪里或该代码如何运作?这是JavaScript / Angular之一,我不知道它是如何工作的。
/* recommended */
angular
.module('blocks.exception')
.factory('exception', exception);
exception.$inject = ['logger'];
function exception(logger) {
var service = {
catcher: catcher
};
return service;
function catcher(message) {
return function(reason) {
logger.error(message, reason);
};
}
}
答案 0 :(得分:1)
catcher
函数返回一个具有参数reason
的函数。在您发布的代码中,该函数未被调用,因此尚未提供reason
。
假设有人在其他地方注入了异常,你可以这样称呼:
var catcher = exception.catcher('This is a message');
var loggerError = catcher('This is the reason');
或者在一行中:
var loggerError = exception.catcher('This is a message')('This is the reason');