有人可以解释这个JavaScript / Angular代码是如何工作的吗?

时间:2016-03-08 21:16:44

标签: javascript angularjs

我正在阅读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);
        };
    }
}

1 个答案:

答案 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');