Defer is a utility library that allows JavaScript developers to write async
code that works across multiple JavaScript platforms.

This functionality is provided in Node.js through its process.nextTick
and setImmediate functions. The ability to micromanage the JavaScript
concurrency model is a major benefit of the language that this library extends
to browser environments.

Developers of cross platform JavaScript libraries can use Defer as a foundation
for providing async behaviour that is consistent across multiple environments.

Defer exposes a function called defer. This function is an abstraction
over platform specific methods for deferring the execution of a function until
a later cycle of the event loop. In modern Node.js this function aliases
setImmediate. In legacy Node.js process.nextTick is used. In modern
browsers this function leverages window.postMessage. In legacy browsers this
function falls back on setTimeout.

For more detailed usage guides and API specifications, see the docs directory.

This module uses browserify to create a browser compatible module. The default
grunt workflow for this project will generate both a full and minified browser
script in a build directory which can be included as a