]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - apps/tidep0084.git/blob - example/iot-gateway/node_modules/aws-iot-device-sdk/node_modules/mqtt/node_modules/end-of-stream/node_modules/once/README.md
Initial commit
[apps/tidep0084.git] / example / iot-gateway / node_modules / aws-iot-device-sdk / node_modules / mqtt / node_modules / end-of-stream / node_modules / once / README.md
1 # once
3 Only call a function once.
5 ## usage
7 ```javascript
8 var once = require('once')
10 function load (file, cb) {
11   cb = once(cb)
12   loader.load('file')
13   loader.once('load', cb)
14   loader.once('error', cb)
15 }
16 ```
18 Or add to the Function.prototype in a responsible way:
20 ```javascript
21 // only has to be done once
22 require('once').proto()
24 function load (file, cb) {
25   cb = cb.once()
26   loader.load('file')
27   loader.once('load', cb)
28   loader.once('error', cb)
29 }
30 ```
32 Ironically, the prototype feature makes this module twice as
33 complicated as necessary.
35 To check whether you function has been called, use `fn.called`. Once the
36 function is called for the first time the return value of the original
37 function is saved in `fn.value` and subsequent calls will continue to
38 return this value.
40 ```javascript
41 var once = require('once')
43 function load (cb) {
44   cb = once(cb)
45   var stream = createStream()
46   stream.once('data', cb)
47   stream.once('end', function () {
48     if (!cb.called) cb(new Error('not found'))
49   })
50 }
51 ```