Javascript : Call function and wait seconds then

I feel stupid because I do not find what I want to do…

It is in PURE Javascript.

I wan’t to call a function, and stop it (or kill it, or whatever) next some seconds.

Here is my actual code :

function scrollThumbnails() {
    const thumbnails = document.querySelectorAll('.thumbnail');

    for (thumbnail of thumbnails) {
        thumbnail.classList.add('active');
        await verticalSlider(thumbnail);
        resetSliderPosition(thumbnail);
        thumbnail.classList.remove('active');
    }

    scrollThumbnails();
}

async function verticalSlider(element) {
    const slider = element.querySelector('.vertical-carrousel');

    const max = slider.offsetHeight - slider.parentElement.offsetHeight;

    var toTop = 0;

    while (toTop > -max) {
        await new Promise((resolve) => setTimeout(resolve, 50));
        toTop--;
        slider.style.top = toTop + 'px';
    }

   await new Promise((resolve) => setTimeout(resolve, 1000));
}

function resetSliderPosition(element) {
    const slider = element.querySelector('.vertical-carrousel');
    slider.style.removeProperty('top');
}

So here, i want to call ‘verticalSlider’ in my loop, but if it is over than 45 seconds, I want to stop it and go on the next thumbnail.

Is it possible ? Do I miss something ?

Thanks by advanced 🙂