@tatarrr95

Как продолжить выполнения кода толко после завершения функции?

var date = new Date();
function myFunction(){
    let i = setInterval(function() {
        if (document.querySelector('.test_class')){
            console.log(i);
            clearInterval(i);
        }
    }, 100);
}

console.log(date.getTime());
myFunction();
console.log(date.getTime());


Есть такой код. Смысл в том, что на странице должен появляться определенный элемент и в консоль выводиться время появления этого элемента. Я хочу, чтобы пока эта функция не отработает, дальше код не выполнялся.
Сейчас же мне подряд выводится два таймштампа и только потом результат функции.
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
Bavashi
@Bavashi
var date = new Date();

function myFunction() {
		let i = setInterval(function() {
        if (document.querySelector('.test_class')){
            console.log(i);
            clearInterval(i);
            nextFunction();
        }
    }, 100);
}

function nextFunction() {
	console.log(date.getTime());
  // next code goes here
}

console.log(date.getTime());
myFunction();
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пока функция не отработает и управление не вернётся в основной поток браузера, никаких новых элементов на странице не появится.
Если нужно отслеживать изменение DOM, то для этого есть MutationObserver.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
24 янв. 2021, в 01:39
12000 руб./за проект
24 янв. 2021, в 01:30
1000000 руб./за проект
24 янв. 2021, в 00:56
40000 руб./за проект