Помогите с JS функцией, проверка условия в интервале, если "true", вызываем хэндлер
Мне нужна элегантная функция, которая в интервале чекает условие, и если оно возвращает "true", то исполняем хэндлер, мои реализация чуть ниже, но меня не покидает ощущение, что я делаю, что-то не так :( и эта функция будет ресурсоёмкой. Использовать биндинг на эвенты нельзя. Может, что-то deferred подобное? Может, это уже реализовано в underscore? Или jQuery?
var when_true_then_run_once = function (condition_fn, run_fn) {
var _interval = setInterval(function () {
if(condition_fn.call()) {
fun_fn.call();
clearInterval(_interval);
}
}, 200);
};
when_true_then_run_once(function () {
if($("msg.success").length) {
return true;
} else {
return false;
}
}, function() {
console.log('success');
})