$ cnpm install hurryup
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?
asyncCallback - async function to calloptionsOrTimeout
object - options passed
retry - TRUE if the timedCallback should be re-called if it returns an errorretryTimeout - timeout between retrying timed callbacktimeout - kill timeoutnumber - the timeout before killing the function call...args - additional arguments to pass to the async callbackhurryUp(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!
});
Copyright 2013 - present © cnpmjs.org | Home |