hurryup
v0.0.8
Published
hurryUp.js ==========
Downloads
19,149
Readme
HurryUp is a timeout library for asynchronous, fault-prone function calls. Basically, it'll timeout an async call if it's been running for too long. You can also specify to re-call async functions until they succeed (see below).
What can you use it for?
- db operations
- api calls
- async jobs
hurryUp(asyncCallback, optionsOrTimeout, ...args)
asyncCallback
- async function to calloptionsOrTimeout
object
- options passedretry
- TRUE if the timedCallback should be re-called if it returns an errorretryTimeout
- timeout between retrying timed callbacktimeout
- kill timeout
number
- the timeout before killing the function call
...args
- additional arguments to pass to the async callback
hurryUp(function(next) {
//this will cause an error
setTimeout(next, 2000);
}, 1000).call(null, function(err, result) {
console.error("timeout has occurred!")
})
Here's an easier way to wrap around a method:
hurryUp(emitter.once, 1000).call(emitter, "connected", function(err, result) {
});
You can also use hurryup to run a callback multiple times until it succeeds, like so:
function isItReady(next) {
//async stuff here
next(new Error("no!"));
}
hurryUp(function(next) {
isItReady(next);
}, { retry: true }).call(null, function(err) {
console.log(err.message); //no!
});