This is working fine:
let timerId = setTimeout( function tick() {
this.oneIteration(this.eventsQueue[counter], counter)
counter++
if( counter == this.eventsQueue.length ) {
clearInterval(this.iteartionInterval)
this.stopBtnClick()
}
timerId = setTimeout(tick.bind(this), this.timeoutDelay)
}.bind(this), 100)
My question is, how would it be possible to get rid of various
.bind(this)
making use of a more modern approach with arrow functions. A sample of this code is published here: link to codesandbox