/** * Module dependencies. */ var assert = require('assert'); /** * Expose `thunkify()`. */ module.exports = thunkify; /** * Wrap a regular callback `fn` as a thunk. * * @param {Function} fn * @return {Function} * @api public */ function thunkify(fn){ assert('function' == typeof fn, 'function required'); return function(){ var args = new Array(arguments.length); var ctx = this; for(var i = 0; i < args.length; ++i) { args[i] = arguments[i]; } return function(done){ var called; args.push(function(){ if (called) return; called = true; done.apply(null, arguments); }); try { fn.apply(ctx, args); } catch (err) { done(err); } } } };
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
test | Folder | 0755 |
|
|
.npmignore | File | 13 B | 0644 |
|
History.md | File | 460 B | 0644 |
|
Makefile | File | 99 B | 0644 |
|
Readme.md | File | 408 B | 0644 |
|
index.js | File | 767 B | 0644 |
|
package.json | File | 1.8 KB | 0644 |
|