GGybarev
@GGybarev
newbie FrontEnd

Куда поставить setTimeOut?

Добрый день
Есть вот такой код, проблема в том, что он выполняется сразу, а не постепенно(т.е. нажал кнопку - подождал, как человек), таймер почему-то не работает... Сам разобраться не могу, измучился уже, куда не втыкал setTimeOut - либо не работает, либо выходит также.

var keepContinue = 0;
var cancel = setInterval(function(){
	keepContinue++;
	var seeMore = document.getElementsByClassName('pam uiBoxLightblue uiMorePagerPrimary');
	if(seeMore.length == 1) {
		seeMore[0].click();
	} else {
		inviteAll();
	}
	console.log(keepContinue);
}, 2000)

function inviteAll(){
	clearInterval(cancel);
	var buttons;
			buttons = document.getElementsByClassName('_42ft _4jy0 FriendRequestAdd addButton _4jy3 _517h _51sy');
			var i = 0;
			(function (){
			  if (i++ > buttons.length) return;
			  setTimeout(function(){
			  	console.log('[' + i + ']');
			  	console.log(buttons[i]);
					for(var i=0; i < buttons.length;i++) {
						if(buttons[i].className === '_42ft _4jy0 FriendRequestAdd addButton _4jy3 _517h _51sy') {
						buttons[i].click();
						console.log('Clicked');
					}
				}
		
			  }, 1500);
			})();
}
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ответы на вопрос 1
dtrm
@dtrm
beginner
У вас одновременно вызываются несколько функций setTimeout с одинаковой задержкой. Самым простым решением будет умножить время задержки на i.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽