JSFiddle - React, Tailwind, and code Playground

JavaScript

var timer;
    var doSlide = false;
    var i = 0;

    function Slide(){

        timer = setTimeout(function(){

            if(doSlide == true){
                Slide();
                i++; // Same as i = i + 1
                console.log('Sliding');
            
                if(i == 3) AbortSlide(); /* Abort on third slide! Dont use this in your logic!*/
            
            } else if(doSlide == false){
                console.log('Sliding aborted untill next RunSlide() call!')
                clearTimeout(timer);
            }

        },1000);

    }

    function RunSlide(){
        doSlide = true;
        Slide();
    }
    function AbortSlide(){
        doSlide = false;
        
        clearTimeout(timer); // Clear the timer after Abortcall!
        
        i = 0; // Resetting the count! Dont use this in your logic!
    }

    RunSlide();