我正在阅读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);
};
}
}
最佳答案
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');
关于javascript - 有人可以解释一下此JavaScript/Angular代码如何工作吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35878176/