How to pass intervalID to interval function in javascript?

Viewed 3910

In javascript when I create an interval, I want to stop the interval from inside the function, but I don't want to reference the ID value from outside like this

var y = setInterval(function(){ clearInterval(y); }, 1000);

What I want is to pass a variable similar to this style

setTimeout(function(data){alert(data);}, 1000, "data");

This works for setInterval too, except I can't really pass the id value that's returned by the setInterval function, because it gets created after calling it.

Right now I'm doing a hack like this:

var r = [];
var y = setInterval(function(r){ if (r.length==1) { clearInterval(r[0]); } }, 1000, r);
r.push(y);

Does anyone know the right way?

Thanks

2 Answers
Related