是否有一种方法可以在Angularjs/javascript中执行工厂/类的每个方法之前/之后调用函数

Is there a way to call a function before/after each method of a factory/class is executed in Angularjs/javascript

本文关键字:方法 工厂 执行 调用 之后 函数 javascript 一种 是否 Angularjs      更新时间:2023-09-26

在java, ruby和许多其他语言中,我们有在方法执行之前/之后调用函数的功能,这些功能大多是由所使用的框架提供的。甚至Jasmine(单元测试库)也有方法beforeEach(在每个it块之前执行给定的块)。

有没有办法在Angularjs/javascript中做到这一点,以便它可以在调用类或工厂的任何方法之前执行?

您可以将函数包装在一个新函数中,以便在其执行前后执行一些常见操作,参见以下代码片段:

var wrappedFunction = function(fn) {
  return function(){
    console.log("Before execute " + fn.name);
    var retValue = fn.apply(this, arguments);
    console.log("After execute " + fn.name);
    return retValue;
  };
};
function funcTest1(par) {
  console.log("funcTest1 -> Par is: " + par);
};
function funcTest2(param) {
  console.log("funcTest2 -> Param value is: " + param);
};
var funcTest1Wrapped = wrappedFunction(funcTest1);
var funcTest2Wrapped = wrappedFunction(funcTest2);
funcTest1Wrapped("Test1");
funcTest2Wrapped("Test2");

我希望这对你有帮助,再见。