15 lines
304 B
JavaScript
15 lines
304 B
JavaScript
'use strict';
|
|
|
|
var noop = require('./noop');
|
|
|
|
module.exports = function once (fn) {
|
|
var disposed;
|
|
function disposable () {
|
|
if (disposed) { return; }
|
|
disposed = true;
|
|
(fn || noop).apply(null, arguments);
|
|
}
|
|
disposable.discard = function () { disposed = true; };
|
|
return disposable;
|
|
};
|