Secondo me in questo caso è migliore
setInterval dove puoi chiamare la funzione
che arresta lo script.