diff --git a/lib/async.js b/lib/async.js index 67404c7ae..68f599b82 100644 --- a/lib/async.js +++ b/lib/async.js @@ -39,20 +39,18 @@ }; function only_once(fn) { - var called = false; return function() { - if (called) throw new Error("Callback was already called."); - called = true; + if (fn === null) throw new Error("Callback was already called."); fn.apply(this, arguments); + fn = null; }; } function _once(fn) { - var called = false; return function() { - if (called) return; - called = true; + if (fn === null) return; fn.apply(this, arguments); + fn = null; }; }