2011-10-21 23 views

Trả lời

171

Bạn cần phải xác định lại mã thành từng phần. Điều này không ngừng thực thi, nó chỉ đặt sự chậm trễ giữa các phần.

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

function partB() { 
    ... 
} 
+2

Bạn có thể chuyển tham số tới 'partB' tại' window.setTimeout (partB, 1000) 'không? – brain56

+5

Nếu bạn quấn nó trong một chức năng vô danh, chẳng hạn như trong câu trả lời của Michael Haren, sau đó bạn có thể. –

+19

Câu trả lời này chỉ đúng một nửa. 'setTimeout()' không giống với 'sleep()'. 'setTimeout()' lập lịch biểu hàm được đặt tên sẽ được thực hiện không đồng bộ tại một thời điểm đã định trong tương lai. Phần còn lại của mã của bạn sẽ không đợi cho đến khi hàm 'partB' được thực hiện, không phải là chức năng tương tự như' sleep() '. Xem: http://stackoverflow.com/questions/4122268/using-settimeout-synchronously-in-javascript – cartbeforehorse

101

Bạn không thể (và không nên) chặn xử lý bằng chức năng ngủ. Tuy nhiên, bạn có thể sử dụng setTimeout để kick off một chức năng sau khi một sự chậm trễ:

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

Tùy thuộc vào nhu cầu của bạn, setInterval có thể có ích, quá.

+9

'sleep' không chặn quá trình xử lý; nó cho phép xử lý để tiếp tục. – EML

9

Hàm setTimeout() dùng để trì hoãn quá trình trong JavaScript.

w3schools có hướng dẫn dễ dàng về chức năng này.

+3

w3School không đáng tin cậy, sử dụng thay vào đó: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout – jolySoft

Các vấn đề liên quan