2011-10-21 16 views

risposta

171

È necessario ridimensionare il codice in pezzi. Questo non ferma l'esecuzione, mette solo un ritardo tra le parti.

function partA() { 
    ... 
    window.setTimeout(partB,1000); 
} 

function partB() { 
    ... 
} 
+2

Puoi passare un parametro a 'partB' a' window.setTimeout (partB, 1000) '? – brain56

+5

Se lo avvolgi in una funzione anonima, come nella risposta di Michael Haren, allora puoi farlo. –

+19

Questa risposta è solo a metà corretta. 'setTimeout()' non è lo stesso di 'sleep()'. 'setTimeout()' pianifica la funzione con nome per essere eseguita in modo asincrono in un tempo prestabilito in futuro. Il resto del codice non aspetterà che sia stata eseguita la funzione 'partB', che non ha la stessa funzionalità di' sleep() '. Vedi: http://stackoverflow.com/questions/4122268/using-settimeout-synchronously-in-javascript – cartbeforehorse

101

Non è possibile (e non dovrebbe) bloccare l'elaborazione con una funzione di sospensione. Tuttavia, è possibile utilizzare setTimeout per dare il via una funzione dopo un ritardo:

setTimeout(function(){alert("hi")}, 1000); 

A seconda delle esigenze, setInterval potrebbe essere utile, anche.

+9

'sleep' non blocca l'elaborazione; consente l'elaborazione per continuare. – EML

9

setTimeout() funzione è utilizzare per ritardare un processo in JavaScript.

w3schools ha un semplice tutorial su questa funzione.

+3

w3School non è affidabile, utilizzare invece: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout – jolySoft

Problemi correlati