@Higrok

Как вызвать функцию только один раз?

Здравствуйте, код ниже вызывает setTimeout столько раз, сколько пользователь кликнул на элемент, но задача заключается в том, чтобы после полного выполнения setTimeout, единожды вызвать функцию, а не столько раз, сколько захотел пользователь. Как это сделать?

game_start() {
		const arr_bet = [];

		for ( let bet of this.bet ) {
			bet.addEventListener('click', (e) => {
				const bet_value = e.target;

				arr_bet.push(Number(bet_value.innerText));

				const bet = arr_bet.reduce((sum, current) => {
					return sum + current;
				}, 0);

				console.log(bet);

				setTimeout((e) => {
					this.active[0].classList.add('hidden');
					this.active[1].classList.add('hidden');
					
					console.log('end');
                                        // Здесь по идее должна вызываться функция.
				}, 10000);
			})
		}
	}
  • Вопрос задан
  • 317 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Сделайте какой-то флаг. Который по-умолчанию false. При каждом выполнении проверяйте этот флаг, если от всё ещё false-- выполнить функцию в которой флаг переключается на true
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы