Часто бывает нужно отследить появление html элементов на странице. Стоит заметить, что использовать такой метод, нужно тогда, и лишь тогда, когда это невозможно сделать по событиям. Обычно события есть у всего. Но какое то стороннее api или скрипт/плагин может не предоставлять таких событий, либо долго ковыряться в его документации, которая написана кривыми мозгами. В этом случае навернем свой маленький прослушиватель:
new Promise((resolve, reject) => { let id = setInterval(() => { if ($('#target-element').length) { clearInterval(id); resolve($('#target-element')); } }, 50); }).then((target) => { target.text('У меня теперь другой текст!'); });
Предположим #target-element — это некая кнопка, при её появлении, мы заменим её текст практически мгновенно. Тут надо заметить, что элемент может и не появиться, в этом случае, если это критично, мы можем ограничить количество итераций каким то числом и подсчитывать их, а при достижении кол-ва попыток найти элемент, вызовем clearInterval и reject.