1 Function.prototype.waitUntil = function (condition, interval) {
2 interval = interval || 100;
3
4 var fn = this,
5 shell = function () {
6 var timer = setInterval(
7 function () {
8 var check;
9
10 try {
11 check = !!(condition());
12 } catch (e) {
13 check = false;
14 }
15
16 if (check) {
17 clearInterval(timer);
18 delete timer;
19 fn();
20 }
21 },
22 interval
23 );
24 };
25
26 return shell;
27 };
28
29 var done = false;
30
31 (function () {
32 document.getElementById('result').innerHTML = 'I waited...';
33 }).waitUntil(function () { return !!(done); })();
34
35 setTimeout(function () { done = true; }, 2000);