Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function poll(fn, callback, errback, timeout, interval) {
- var endTime = Number(new Date()) + (timeout || 2000);
- interval = interval || 100;
- (function p() {
- // В случае успешного выполнения условия
- if(fn()) {
- callback();
- }
- // Условие не выполнилось, но время ещё не вышло (тик интервала)
- else if (Number(new Date()) < endTime) {
- setTimeout(p, interval);
- }
- // Условие не выполнилось, а отведённое время вышло
- else {
- errback(new Error('timed out for ' + fn + ': ' + arguments));
- }
- })();
- }
- // При использовании: убедитесь что элемент видим
- poll(
- function() {
- return document.getElementById('lightbox').offsetWidth > 0;
- },
- function() {
- // Функция на случай успешного выполнения
- },
- function() {
- // Функция на случай ошибки
- }
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement