2015-08-10 2 views
1

Я ищу, чтобы передать обработчик setInterval() во внутреннюю функцию.Как передать идентификатор setInterval() на анонимный funtion

Например:

var id = setInterval(myfunction, "100000"); 

Я ищу передать id в myfunction

Я попытался

setInterval(myfunciton(e), "10000"); 

но не передать переменную.

Любые идеи?

+0

Если я не понял вас, вы не можете передать параметр, который даже еще не определен ... –

ответ

7

Идентификатор не существует, когда вы вызываете setInterval, но он существует к моменту вызова обратного вызова.

Вы должны были бы обернуть вызов в функцию, которая использует идентификатор в вызове:

var id = setInterval(function(){ 
    myfunction(id); 
}, 10000); 
+1

Я немного смущен - как вы можете передать 'id' функции, если она еще не была объявлена ​​как переменная? –

+3

@SterlingArcher К тому времени, когда функция вызывается, 'id' существует в течение 10 секунд. – JJJ

+1

Ахх, конечно. В этом есть смысл. –

1

Если вы включили переменную в обратном вызове, когда она передана в setInterval, обратный вызов немедленно выполняет этот аргумент.

Что вам нужно сделать, это создать замыкание:

setInterval(function() { 
    myFunction(e); 
}, 10000); 

Кроме того, интервал должен быть целым числом, а не строка.

Смежные вопросы