Advertisement
Guest User

Untitled

a guest
May 24th, 2016
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. function poll(fn, callback, errback, timeout, interval) {
  2. var endTime = Number(new Date()) + (timeout || 2000);
  3. interval = interval || 100;
  4.  
  5. (function p() {
  6. // В случае успешного выполнения условия
  7. if(fn()) {
  8. callback();
  9. }
  10. // Условие не выполнилось, но время ещё не вышло (тик интервала)
  11. else if (Number(new Date()) < endTime) {
  12. setTimeout(p, interval);
  13. }
  14. // Условие не выполнилось, а отведённое время вышло
  15. else {
  16. errback(new Error('timed out for ' + fn + ': ' + arguments));
  17. }
  18. })();
  19. }
  20.  
  21. // При использовании: убедитесь что элемент видим
  22. poll(
  23. function() {
  24. return document.getElementById('lightbox').offsetWidth > 0;
  25. },
  26. function() {
  27. // Функция на случай успешного выполнения
  28. },
  29. function() {
  30. // Функция на случай ошибки
  31. }
  32. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement