为node.js中的方法设置before/after钩子
setting a before/after hook for methods in node.js
如何为node.js中的方法设置before/after"hook"?
在调用某个方法之前,我需要它执行某些操作。我使用的是node.js 10.36和socket.io 1.2。
扩展Function
:
这里是对Function.Prototype
的一个小扩展
Function.prototype.before = function (callback) {
var that = this;
return (function() {
callback.apply(this, arguments);
return (that.apply(this, arguments));
});
}
Function.prototype.after = function (callback) {
var that = this;
return (function() {
var result = that.apply(this, arguments);
callback.apply(this, arguments);
return (result);
});
}
这两个扩展返回要调用的函数。
这里有一个小例子:
function test(a) {
console.log('In test function ! a = ', a);
}
test(15); // "In test function ! a = 15"
与之前:
var beforeUsed = test.before(function(a) {
console.log('Before. Parameter = ', a);
});
beforeUsed(65); // "Before. Parameter = 65"
// "In test function ! a = 65"
之后:
var afterUsed = beforeUsed.after(function(a) {
console.log('After. Parameter = ', a);
});
afterUsed(17); // "Before. Parameter = 17"
// "In test function ! a = 17"
// "After. Parameter = 17"
您还可以链接:
var both = test.before(function(a) {
console.log('Before. Parameter = ', a);
}).after(function(a) {
console.log('After. Parameter = ', a);
});
both(17); // Prints as above
相关文章:
- missing ) after argument list DATEDIF
- 无法覆盖CSS伪元素:before
- 为node.js中的方法设置before/after钩子
- jQuery:如何选择所有具有:before或:after的伪元素
- JavaScript:任何改变CSS伪:before和:after的机会或替代方案
- 如何获取对 JS中 ::before 或 ::after 节点的引用
- jquery before() after() 不能正常工作
- 如何检测浏览器对 :after 和 :before 的支持
- jQuery 添加了纯 html .after() 和 .before()
- 有没有任何方法可以重置元素的CSS规则:after/:before
- Jquery:prepend()VS before()and append()VS after(),what'他
- CSS伪元素上的事件侦听器,例如::after和::before
- Jquery/JS-如何切换元素的:after,:before
- :before和:after中的图标不会显示在实际页面中
- jQuery before() / after() 不能在 HTML 中正常工作
- Dropzone.js event after drop end and before uploading
- 不能为:before,:after编辑css样式
- dojo/aspect's before()/after() once()?
- 包装多个主干渲染方法的优雅方式,以避免“before”;和“;after"事件重复
- 无法在::before和::after之间的标记上使用jQuery的click函数