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
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/tar-fs/node_modules/pump/node_modules/end-of-stream/node_modules/once/README.md
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/glob/node_modules/once/README.md
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/glob/node_modules/once/README.md
entangled-0.0.10 spec/dummy/public/node_modules/phantomjs/node_modules/npmconf/node_modules/once/README.md
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/npmconf/node_modules/once/README.md
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/tar-fs/node_modules/tar-stream/node_modules/end-of-stream/node_modules/once/README.md
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/tar-fs/node_modules/pump/node_modules/end-of-stream/node_modules/once/README.md
opal-0.7.1 stdlib/nodejs/node_modules/glob/node_modules/once/README.md
traceur-rb-0.0.2 vendor/node_modules/traceur/node_modules/glob/node_modules/once/README.md
spider-src-0.1.7 lib/spider-src/support/spider/node_modules/traceur/node_modules/glob/node_modules/once/README.md
spider-src-0.1.6 lib/spider-src/support/spider/node_modules/spider-script/node_modules/traceur/node_modules/glob/node_modules/once/README.md
trans-0.5.10 template/node_modules/gulp/node_modules/orchestrator/node_modules/end-of-stream/node_modules/once/README.md
trans-0.5.10 template/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/once/README.md
trans-0.5.10 template/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/once/README.md
trans-0.5.9 template/node_modules/gulp/node_modules/orchestrator/node_modules/end-of-stream/node_modules/once/README.md
trans-0.5.9 template/node_modules/grunt-contrib-jshint/node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/once/README.md
trans-0.5.9 template/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/once/README.md
pleeease-0.0.3 node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/README.md
pleeease-0.0.2 node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/README.md
embeditor-rails-2.0.0.beta lib/node_modules/npm/node_modules/once/README.md