Function.prototype.waitUntil = function (condition, interval) {
interval = interval || 100;
var fn = this,
shell = function () {
var timer = setInterval(
function () {
var check;
try {
check = !!(condition());
} catch (e) {
check = false;
}
if (check) {
clearInterval(timer);
delete timer;
fn();
}
},
interval
);
};
return shell;
};
var done = false;
(function () {
document.getElementById('result').innerHTML = 'I waited...';
}).waitUntil(function () { return !!(done); })();
setTimeout(function () { done = true; }, 2000);