Sha256: 41cf0f8fb2f232b67ce4d1e6f8b5ae76a17545598d2f49ed59308b643628bf5f

Contents?: true

Size: 1012 Bytes

Versions: 540

Compression:

Stored size: 1012 Bytes

Contents

# once

Only call a function once.

## usage

```javascript
var once = require('once')

function load (file, cb) {
  cb = once(cb)
  loader.load('file')
  loader.once('load', cb)
  loader.once('error', cb)
}
```

Or add to the Function.prototype in a responsible way:

```javascript
// only has to be done once
require('once').proto()

function load (file, cb) {
  cb = cb.once()
  loader.load('file')
  loader.once('load', cb)
  loader.once('error', cb)
}
```

Ironically, the prototype feature makes this module twice as
complicated as necessary.

To check whether you function has been called, use `fn.called`. Once the
function is called for the first time the return value of the original
function is saved in `fn.value` and subsequent calls will continue to
return this value.

```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'))
  })
}
```

Version data entries

540 entries across 146 versions & 18 rubygems

Version Path
opal-0.11.4 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.11.3 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.11.2 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.11.1 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.11.1.pre stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.10.6 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.10.6.beta stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.11.0 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.10.5 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.10.4 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
opal-0.11.0.rc1 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
lanes-0.8.0 node_modules/fsevents/node_modules/tar-pack/node_modules/once/README.md
lanes-0.8.0 node_modules/tar-pack/node_modules/once/README.md
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/rimraf/node_modules/glob/node_modules/once/README.md
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/tar-fs/node_modules/pump/node_modules/once/README.md
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/glob/node_modules/once/README.md
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/inquirer/node_modules/run-async/node_modules/once/README.md
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/tar-fs/node_modules/tar-stream/node_modules/end-of-stream/node_modules/once/README.md
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md