javascript - loop - setinterval php
Pasa parámetros en la función setInterval (13)
Cómo pasar el parámetro mientras se llama una función usando setInterval. verbigracia. setInterval(''funca(10,3)'',500);
Es incorrecto.
Agrégalos como parámetros a setInterval:
setInterval(funca, 500, 10, 3);
La sintaxis en su pregunta utiliza eval, que no es una práctica recomendada.
Ahora con ES5, método de enlace Prototipo de función:
setInterval(funca.bind(null,10,3),500);
Citar los argumentos debería ser suficiente:
var fiveMinutes = 60 * 2;
var display = document.querySelector(''#timer'');
startTimer(fiveMinutes, display);
Tenga en cuenta la comilla simple ''
para cada argumento.
Probado con IE8, Chrome y FireFox
Con mucho, la respuesta más práctica es la que da tvanfosson, todo lo que puedo hacer es darle una versión actualizada con ES6:
OK --> reloadIntervalID = window.setInterval( "reloadSeries(''"+param2Pass+"'')" , 5000)
KO --> reloadIntervalID = window.setInterval( "reloadSeries( "+param2Pass+" )" , 5000)
Debe crear una función anónima para que la función real no se ejecute de inmediato.
setInterval( function() { funca(10,3); }, 500 );
Esto funciona setInterval("foo(bar)",int,lang);
.... Jon Kleiser me guió a la respuesta.
Otra solución consiste en pasar su función de esa manera (si tiene vars dinámicos): setInterval (''funca ('' + x + '','' + y + '')'', 500);
Puede pasar los parámetros como una propiedad del objeto de función, no como un parámetro:
var f = this.someFunction; //use ''this'' if called from class
f.parameter1 = obj;
f.parameter2 = this;
f.parameter3 = whatever;
setInterval(f, 1000);
Luego, en su función someFunction
, tendrá acceso a los parámetros. Esto es particularmente útil dentro de las clases donde el alcance va al espacio global automáticamente y, para empezar, se pierden referencias a la clase que se llama setInterval. Con este enfoque, el "parámetro 2" en "alguna función", en el ejemplo anterior, tendrá el alcance correcto.
Puede utilizar una biblioteca llamada guión bajo js. Da una buena envoltura en el método de enlace y también es una sintaxis mucho más limpia. Permitiéndole ejecutar la función en el ámbito especificado.
_.bind (función, alcance, * argumentos)
Puedes usar una función anónima;
setInterval(function() { funca(10,3); },500);
Sé que este tema es muy antiguo, pero aquí está mi solución para pasar parámetros en la función setInterval
.
HTML:
function startTimer(duration, display) {
var timer = duration,
minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
--timer; // put boolean value for minus values.
}, 1000);
}
JavaScript:
function startTimer(duration, display) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(timer / 60, 10); seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; display.textContent = minutes + ":" + seconds; --timer; // put boolean value for minus values. }, 1000); }
setInterval(function(a,b,c){
console.log(a + b +c);
}, 500, 1,2,3);
//note the console will print 6
//here we are passing 1,2,3 for a,b,c arguments
// tested in node v 8.11 and chrome 69
setInterval(function,milliseconds,param1,param2,...)
Actualización: 2018 - usar el operador "spread"
setInterval( ()=>{ funca(10,3); }, 500);