Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including dezalgo with all npm packages installed. Try it out:

var dezalgo = require("dezalgo")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

dezalgo v1.0.3

Contain async insanity so that the dark pony lord doesn't eat souls

dezalgo

Contain async insanity so that the dark pony lord doesn't eat souls

See this blog post.

USAGE

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)
  })
}
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free