![]() | Name | Last modified | Size | Description |
---|---|---|---|---|
![]() | Parent Directory | - | ||
![]() | node_modules/ | 3 months ago | - | |
![]() | package.json | 40 years ago | 1.1K | |
![]() | LICENSE | 40 years ago | 765 | |
![]() | README.md | 40 years ago | 651 | |
![]() | dezalgo.js | 40 years ago | 368 |
Contain async insanity so that the dark pony lord doesn't eat souls
See this blog post.
Pass a callback to dezalgo
and it will ensure that it is always
called in a future tick, and never in this tick.
var dz = require('dezalgo')
var cache = {}
function maybeSync(arg, cb) {
cb = dz(cb)
// this will actually defer to nextTick
if (cache[arg]) cb(null, cache[arg])
fs.readFile(arg, function (er, data) {
// since this is *already* defered, it will call immediately
if (er) cb(er)
cb(null, cache[arg] = data)
})
}