JS функция, проверка условия в интервале — как написать?

Помогите с 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');
})
  • Вопрос задан
  • 2607 просмотров
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Зачем так делать? Неужели нет других способов отследить появление в ДОМ msg.success? Может какая-то другая функция имеет коллбэк и вставляет его?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы