25 lines
652 B
JavaScript
25 lines
652 B
JavaScript
'use strict';
|
|
|
|
var waitsForAndRuns = function(escapeFunction, runFunction, escapeTime) {
|
|
// check the escapeFunction every millisecond so as soon as it is met we can escape the function
|
|
var interval = setInterval(function() {
|
|
if (escapeFunction()) {
|
|
clearMe();
|
|
runFunction();
|
|
}
|
|
}, 1);
|
|
// in case we never reach the escapeFunction, we will time out
|
|
// at the escapeTime
|
|
var timeOut = setTimeout(function() {
|
|
clearMe();
|
|
runFunction();
|
|
}, escapeTime);
|
|
// clear the interval and the timeout
|
|
function clearMe() {
|
|
clearInterval(interval);
|
|
clearTimeout(timeOut);
|
|
}
|
|
};
|
|
|
|
module.exports = waitsForAndRuns;
|