I have this counter I made but I want it to run forever, it's really simple, what am I doing wrong here?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
I have this counter I made but I want it to run forever, it's really simple, what am I doing wrong here?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
setInterval
andsetTimeout
must be used with callbacks, like:or unnamed functions:
Why your code is not working - when you pass a function as argument to another function with brackets e.g.
doSomething ( someFunc() )
you are passing the result of the function.When the function is passed as object e.g.
doSomething ( someFunc )
you are passing a callback. This waysomeFunc
is passed as reference and it is executed somewhere in the calling function. This is the same as the pointers to functions in other languages.A common mistake is to use the these two functions as shown at w3schools. This makes an implicit call to
eval
.You used a function call instead of a function reference as the first parameter of the setInterval. Do it like this:
Or shorter (but when the function gets bigger also less readable):