Created
September 7, 2016 08:25
-
-
Save bhavyaw/77bd0a04d99a7d7a4961b38844708957 to your computer and use it in GitHub Desktop.
Waiting for condition to get true and then executing a certain function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//********************************************************************** | |
// function waitfor - Wait until a condition is met | |
// | |
// Needed parameters: | |
// test: function that returns a value | |
// expectedValue: the value of the test function we are waiting for | |
// msec: delay between the calls to test | |
// callback: function to execute when the condition is met | |
// Parameters for debugging: | |
// count: used to count the loops | |
// source: a string to specify an ID, a message, etc | |
//********************************************************************** | |
function waitfor(test, expectedValue, msec, count, source, callback) { | |
// Check if condition met. If not, re-check later (msec). | |
while (test() !== expectedValue) { | |
count++; | |
setTimeout(function() { | |
waitfor(test, expectedValue, msec, count, source, callback); | |
}, msec); | |
return; | |
} | |
// Condition finally met. callback() can be executed. | |
console.log(source + ': ' + test() + ', expected: ' + expectedValue + ', ' + count + ' loops.'); | |
callback(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Usage is as follows :