There is a asynchronous function fun(param, callback)
like this:
fun(param, function(err){
if(err) console.log(err);
doSomething();
});
How do I set a time limit to run this function?
For example, I set time limit equals to 10 secs.
If it finish in 10 seconds, there is no error.
If it run exceed 10 seconds, terminate it and show error.
The easiest way to do this is to capture the function in a promise.
Promises are ideal for this kind of behavior you could have something like:
this is using the basic ES6 Promise implementation. however if you want to include something like bluebird you can find more powerful tools like promisification of functions or entire modules and promise timeouts.
http://bluebirdjs.com/docs/api/timeout.html
this in my opinion would be the preferred approach. Hope this helps
I have made a module 'intelli-timer'