2013-03-10 3 views
0

Я использую код ниже в моих функциях javascript. Я хочу вызвать эту функцию через 10 секунд. Однако функция запускается прямо сейчас!?! Не уверен, что происходит.Javascript Pause

<script> 
    function testing() { 
    //other stuff 
    setTimeout(testing2('value'), 10000); 
    } 
    function testing2(value) { 
    //other stuff 
    } 
</script> 

ответ

2

testing2 вызывается сразу, потому что ваш написал с аргументом.
setTimeout нуждается в функции в качестве первого параметра.

И если вы пишете testing2('value') JavaScript, конечно, должны выполнить свой testing2 на первый, чтобы получить результат и только после этого передать результат в setTimeout

1

Вам необходимо передать функцию в качестве аргумента, а не вызывать функцию ,

setTimeout(function(){ 
    // Inside the callback we do what we want. 
    testing2('value'); 
}, 10000); 
1

Проблема заключается в том, что вы передаете значение, возвращенное из testing2('value'), а не функции в setTimeout.

Попробуйте это.

setTimeout(function() { 
    testing2('value'); 
}, 10000); 
+0

Я бы даже не упомянул об обратном. «Исправить» что-то просто, обернув его в кавычки, просто слишком соблазнительно, чтобы уйти. – Blender

+0

Обновлено. Думаю, на самом деле нет смысла упоминать об этом. –