ensure-async
Wrap an async function and ensure it calls its callback on a later tick of the event loop. Based on async#ensureAsync as module.
Install
npm install ensure-async --save
If you want to use in the browser (powered by Browserify):
bower install ensure-async --save
and later link in your HTML:
Usage
var ensureAsync = ; { if cachearg return ; // this would be synchronous!! else ; // this IO would be asynchronous } // this has a risk of stack overflows if many results are cached in a rowasync; // this will defer sometimesAsync's callback if necessary,// preventing stack overflowsasync;
API
ensureAsync(fn)
Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (RangeError: Maximum call stack size exceeded
) and generally keeping Zalgo contained.
Arguments
fn
- an async function, one that expects a node-style callback as its last argument
Returns a wrapped function with the exact same call signature as the function passed in.
License
MIT © Kiko Beats