Как передать аргументы в функции setInterval Например:
intId = setInterval(waiting(argument), 10000);
Здесь отображается ошибка : useless setInterval call (missing quotes around argument?)
Как передать аргументы в функции setInterval Например:
intId = setInterval(waiting(argument), 10000);
Здесь отображается ошибка : useless setInterval call (missing quotes around argument?)
Использовать анонимную функцию
intId = setInterval(function(){waiting(argument)}, 10000);
Это создает аномальную функцию без параметров, которая вызывает waiting()
с аргументами
Или используйте необязательные параметры функции setInterval()
:
intId = setInterval(waiting, 10000, argument [,...more arguments]);
Ваш код (intId = setInterval(waiting(argument), 10000);
) вызывает waiting()
с помощью argument
, принимает возвращаемое значение, пытается рассматривать его как функцию и устанавливает интервал для этого возвращаемого значения. Если waiting()
- это функция, которая возвращает другую функцию, это не сработает, поскольку вы можете рассматривать функции только как функции. Номера/строки/объекты не могут быть приписаны к функции.
Вы можете использовать Function#bind
:
intId = setInterval(waiting.bind(window, argument), 10000);
Он возвращает функцию, которая будет вызывать целевую функцию с заданным контекстом (window
) и любыми необязательными аргументами.
Используйте этот метод:
var interval = setInterval( callback , 500 , arg1 , arg2[, argn ] );
[...]
function callback(arg1, arg2[, etc]){
}
Дополнительная информация здесь: window.setInterval
Вы можете использовать функции bind и apply для хранения аргумента в состоянии.
Пример использования bind в node shell:
> var f = function(arg) { console.log (arg);}
> f()
undefined
> f("yo")
yo
> var newarg = "stuff";
> f(newarg)
stuff
> var fn = f.bind(this, newarg);
> fn()
stuff
> var temp = setTimeout(fn,1000)
> stuff
setInterval (function() {funca (10,3);}, 500);