我正在阅读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/

10-12 12:31