module once 模块主要功能是为了使得回调只会执行一次 非常适合于只需要执行一次的函数
var wrappy = require('wrappy')
module.exports = wrappy(once)
//执行一次后 在函数的原型上定义一个once 方法,
once.proto = once(function () {
Object.defineProperty(Function.prototype, 'once', {
value: function () {
return once(this)
},
configurable: true
})
})
function once (fn) {
var f = function () {
// 再次运行的话 返回 cb上一次的返回值。
if (f.called) return f.value
f.called = true
return f.value = fn.apply(this, arguments)
}
f.called = false
return f
}
本文介绍了一个实用的Node.js模块——once。该模块确保了传入的函数仅被执行一次,并且在首次执行后返回相同的结果。通过修改Function.prototype,once模块为所有函数提供了一次性的执行能力。
383

被折叠的 条评论
为什么被折叠?



