Comparing version 1.1.1 to 1.2.0
@@ -13,8 +13,9 @@ module.exports = once | ||
function once (fn) { | ||
var called = false | ||
return function () { | ||
if (called) return | ||
called = true | ||
var f = function () { | ||
if (f.called) return | ||
f.called = true | ||
return fn.apply(this, arguments) | ||
} | ||
f.called = false | ||
return f | ||
} |
{ | ||
"name": "once", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "Run a function exactly one time", | ||
@@ -5,0 +5,0 @@ "main": "once.js", |
@@ -34,1 +34,16 @@ # once | ||
complicated as necessary. | ||
To check whether you function has been called, use `fn.called`: | ||
```javascript | ||
var once = require('once') | ||
function load (cb) { | ||
cb = once(cb) | ||
var stream = createStream() | ||
stream.once('data', cb) | ||
stream.once('end', function () { | ||
if (!cb.called) cb(new Error('not found')) | ||
}) | ||
} | ||
``` |
@@ -11,5 +11,7 @@ var test = require('tap').test | ||
}) | ||
t.notOk(foo.called) | ||
for (var i = 0; i < 1E3; i++) { | ||
t.same(f, i === 0 ? 0 : 1) | ||
var g = foo.call(1, 1) | ||
t.ok(foo.called) | ||
t.same(g, i === 0 ? 3 : undefined) | ||
@@ -16,0 +18,0 @@ t.same(f, 1) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3434
37
48