Blame view

node_modules/wrappy/README.md 685 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  # wrappy
  
  Callback wrapping utility
  
  ## USAGE
  
  ```javascript
  var wrappy = require("wrappy")
  
  // var wrapper = wrappy(wrapperFunction)
  
  // make sure a cb is called only once
  // See also: http://npm.im/once for this specific use case
  var once = wrappy(function (cb) {
    var called = false
    return function () {
      if (called) return
      called = true
      return cb.apply(this, arguments)
    }
  })
  
  function printBoo () {
    console.log('boo')
  }
  // has some rando property
  printBoo.iAmBooPrinter = true
  
  var onlyPrintOnce = once(printBoo)
  
  onlyPrintOnce() // prints 'boo'
  onlyPrintOnce() // does nothing
  
  // random property is retained!
  assert.equal(onlyPrintOnce.iAmBooPrinter, true)
  ```