Intervalles réguliers

// on lance la fonction someFunc, à intervalles d'une demi-seconde, et on arrête une fois que t est égal à 10
let t = 0;
let intrv = setInterval(someFunc, 500)

function someFunc(){
	t++;
	if(t >= 10){
		clearInterval(intrv)
	}
}

Ponctuel

// lance une fois la fonction anonyme après 500 secondes 
window.setTimeout(function(){
	console.log("fonction éxécutée")
}, 500)

window.requestAnimationFrame()

https://johnresig.com/blog/how-javascript-timers-work/