Khi sử dụng setTimeout bạn có phải clearTimeout không?


85

Ai đó đã nói với tôi rằng khi bạn sử dụng setTimeoutbạn phải xóa nó với clearTimeout. Tôi có thể hiểu trước khi hết thời gian, nhưng tại sao lại sau? Hay là nó không đúng sự thật?

Câu trả lời:


86

Nó không đúng - không có hại gì khi xóa thời gian chờ sau khi nó kết thúc, nhưng nó không cần thiết.

Theo đặc điểm kỹ thuật :

Nếu xử lý không xác định một mục nhập trong danh sách bộ hẹn giờ hoạt động của đối tượng WindowOrWorkerGlobalScope mà [clearTimeout] đã được gọi trên đó, phương pháp này sẽ không thực hiện được gì.

Nói cách khác, đó là một không-op; không có gì xảy ra và sẽ không có lỗi nào được đưa ra.


50

Bạn thực sự không cần sử dụng clearTimeout, bạn chỉ sử dụng nó nếu bạn muốn hủy thời gian chờ mà bạn đã đặt trước khi nó xảy ra.

Nó thường thực tế hơn để sử dụng clearIntervalvới setIntervalsetIntervalthường chạy vô thời hạn.


15

clearTimeoutchỉ cần thiết để hủy thời gian chờ. Sau khi cháy hết thời gian, nó có thể được để yên một mình. clearIntervalthường cần thiết hơn nhiều để ngăn nó tiếp tục vô thời hạn.


10

Không có lý do gì để xóa nó sau khi hoàn thành. Bạn của bạn có thể đã nhầm lẫn với setInterval.


10

Không, setTimeoutdừng chạy sau 1 cuộc gọi. setIntervalTuy nhiên, để dừng lại , bạn phải sử dụng clearInterval. Nếu bạn tạo một vòng lặp vô tận setTimeoutthì clearTimeoutcó thể được sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.