JavaScript - setTimeout не определено? - PullRequest
0 голосов
/ 19 августа 2011

По той причине, что я не могу понять, следующая функция, похоже, не работает.

function timerTick()
{
    var t=setTimeout(timerTick,1000);
}

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

Идеи

Ответы [ 2 ]

3 голосов
/ 19 августа 2011

Все работает.То, что вы видите, - это возвращаемое значение вызова самого timerTick, которое в его нынешнем виде не имеет оператора возврата и чье возвращаемое значение, таким образом, будет undefined.(Локальная переменная t это , а не , возвращаемая автоматически!)

Если вы добавите

console.log( "It's me. Again!" );

внутри timerTick и вызоветеэто будет происходить каждую секунду в консоли, как и ожидалось.

EDIT: опечатка в коде и пояснения: возвращаемое значение функций , не вызываемых из консоли , например, через setTimeout или setInterval, не будут печататься на консоли.

0 голосов
/ 19 августа 2011

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

Идеи? * * 1004

Может быть, вы вводите этот код в консоль и нажимаете ввод (например, в Chrome)? В этом случае консоль говорит «неопределено». Если вам нужно запустить функцию timerTick, попробуйте следующее: 1)

function timerTick()
{
    console.info('i am called');
    var t=setTimeout(timerTick,1000);
}
timerTick();

или 2)

(function timerTick()
{
    console.info('i am called');
    var t=setTimeout(timerTick,1000);
})();
...