2010-09-14 3 views
3

в JavaScript из функции являетсяОтсрочка исполнения со временем SetTimeout

setTimeout(fun, 3600); 

но что, если я не хочу, чтобы запустить любую другую функцию. Могу ли я сделать setTimeout(3600);?

+4

Ха, если вы не используете другую функцию, что вам нужен тайм-аут для? – NullUserException

+4

Если ничто не запускается в конце таймера, почему вы создаете таймер вообще? Здесь будет полезен немного больше контекста вашей общей цели. –

+3

Если вы надеетесь сделать это, чтобы «спать» в javascript, тайм-ауты не приостанавливают выполнение. –

ответ

6

Я не уверен, что вы пытаетесь сделать. Если вы хотите, чтобы после периода времени ничего не случилось, зачем вам в первую очередь нужен setTimeout()?

2

Вы всегда можете пройти обработчик, который ничего не делает:

setTimeout(function() { }, 3600); 

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

10

Основываясь на том, что вы говорите, вы просто пытаетесь отложить выполнение внутри функции.

Скажет, например, вы хотите запустить оповещение, а еще через 2 секунды второго предупреждения, как так:

alert("Hello") 
sleep 
alert("World") 

В JavaScript, единственный совместимый способ 100% для достижения этой цели является разделение функции.

function a() 
{ 
alert("Hello") 
setTimeout("b()",3000); 
} 
function b() 
{ 
alert("World"); 
} 

Вы также можете объявить функцию внутри самого SetTimeout как так

function a() 
{ 
    alert("Hello"); 
    setTimeout(function() { 
    alert("World"); 
    },3000); 
} 
+2

'setTimeout()' принимает функцию *, затем * задержка, также стараются избегать передачи строк, просто 'setTimeout (b, 3000);' будет делать. –

+0

или 'setTimeout (function() {b();}, 3000)' - например ... полезно, если вам нужно использовать аргументы. 'setTimeout (function() {b (arg1, arg2);}, 3000)' .... также это 'setTimeout (код, delay)' не наоборот. –

+0

@Peter - Это не сработает, если вы не измените функцию 'b()' на * return * функцию, которая будет передана 'setTimeout()'. Вы правы насчет порядка аргументов. : o) – user113716

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