2011-09-12 14 views
35

किसी ने मुझे बताया कि जब आप setTimeout का उपयोग करते हैं तो आपको इसे clearTimeout से साफ़ करना होगा। टाइमआउट समाप्त होने से पहले मैं समझ सकता हूं, लेकिन क्यों? या यह असत्य है?सेटटाइमआउट का उपयोग करते समय आपको टाइमआउट को साफ़ करना होगा?

उत्तर

35

यह सच नहीं है - इसे समाप्त होने के बाद टाइमआउट साफ़ करने में कोई हानि नहीं है, लेकिन यह आवश्यक नहीं है।

प्रति specification:

संभाल WindowOrWorkerGlobalScope वस्तु के सक्रिय टाइमर जिस पर [clearTimeout] लागू किया गया था की सूची में एक प्रविष्टि की पहचान नहीं करता, विधि कुछ नहीं करता है।

दूसरे शब्दों में, यह एक नो-ओप है; कुछ भी नहीं होता है, और कोई त्रुटि नहीं फेंक दी जाएगी।

6

इसे पूरा होने के बाद इसे साफ़ करने का कोई कारण नहीं है। आपका मित्र setInterval से उलझन में हो सकता है।

8

clearTimeout केवल टाइमआउट रद्द करने के लिए आवश्यक है। टाइमआउट आग के बाद, यह सुरक्षित रूप से अकेला छोड़ा जा सकता है। clearInterval इसे अनिश्चित काल तक जारी रखने से रोकने के लिए अधिक आम तौर पर आवश्यक है।

6

नहीं, setTimeout 1 कॉल के बाद चलना बंद कर देता है। setInterval को रोकने के लिए, आपको clearInterval का उपयोग करना होगा। यदि आप setTimeout का अंतहीन पाश बनाते हैं तो clearTimeout का उपयोग किया जा सकता है।

23

आपको वास्तव में clearTimeout का उपयोग करने की आवश्यकता नहीं है, तो आप केवल तभी उपयोग करते हैं जब आप पहले से सेट किए गए टाइमआउट को रद्द करना चाहते हैं।

setInterval के साथ आमतौर पर अधिक व्यावहारिक है क्योंकि setInterval आमतौर पर अनिश्चित काल तक चलता है।

संबंधित मुद्दे

 संबंधित मुद्दे