Отменить рекурсию

160
24 сентября 2019, 03:40

Всем привет)))

Есть функция - autoPlay()

function autoPlay(startIndex, interval){ 
		var interval = interval || 6000 
		var startIndex = startIndex || 0 
		var headerLinks = $('header.home .links .link') 
		setHeaderLinkClassActive(headerLinks[startIndex]) 
		changeBg(headerLinks[startIndex]) 
		setTimeout(function(){ 
			startIndex++ 
			startIndex < 3 ? autoPlay(startIndex,interval) : autoPlay( 0 ,interval) 
			console.log( " clickActive = " + clickActive) 
		},interval) 
	}

Как перезаписать ее вызов. Получается я ее вызываю, а потом мне надо еще раз ее вызвать, но чтобы старый вызов уже убился

Answer 1

Если Вы повторно вызываете autoPlay еще где-то:

var timer; 
function autoPlay(startIndex, interval){ 
  // ... 
  clearTimeout(timer); 
  timer = setTimeout(function(){ 
    // ... 
  }, interval); 
}

Если не вызываете, то никакой отмены не нужно.

READ ALSO
Временная шкала от начальной даты до конечной

Временная шкала от начальной даты до конечной

Всём привет стоит задача получить массив всех дней и месяцев в промежутке между двумя датам как в диограма Ганта можно ли это сделать при...

132
Интернационализация в проекте Vue js

Интернационализация в проекте Vue js

Вот есть такой массив думал как сделать для него интернационализацию, пробовал вот так: {this$i18n

152
Как по событию .submit отловить нажатую button? [дубликат]

Как по событию .submit отловить нажатую button? [дубликат]

Данный вопрос является точным дубликатом:

170
Функция slice не работает для document.querySelector. Ошибка .slice is not a function

Функция slice не работает для document.querySelector. Ошибка .slice is not a function

Что-то запуталсяПочему так? как исправить?

152