Bachir Soussi Chiadmi cefd1c2ad0 updated sys and created publi 7 years ago
..
LICENSE 0611418f7a added whole system from ola4doc 7 years ago
README.md 0611418f7a added whole system from ola4doc 7 years ago
once.js 0611418f7a added whole system from ola4doc 7 years ago
package.json cefd1c2ad0 updated sys and created publi 7 years ago

README.md

once

Only call a function once.

usage

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:

// 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.

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