ऐसा होने से पहले window.setTimeout () को रद्द / मार दें


194

मेरे पास कुछ स्थान हैं जहां मैं नीचे की रेखा का उपयोग एक स्थिति को स्पष्ट करने के लिए करता हूं, उदाहरण के लिए। मेरे पास इनमें से कुछ हैं जो 10 सेकंड या उससे अधिक के लिए हैंग हो जाते हैं और यदि उपयोगकर्ता कार्रवाई पर क्लिक करता है तो गलत समय अंतराल पर हो सकता है।

window.setTimeout(function() { removeStatusIndicator(); }, statusTimeout);

क्या कुछ jQuery या जावास्क्रिप्ट कोड के साथ इसे रद्द करना या मारना संभव है, इसलिए मेरे पास यह प्रक्रिया नहीं है?

जवाबों:


374
var timer1 = setTimeout(function() { removeStatusIndicator(); }, statusTimeout);

clearTimeout(timer1)

101
विंडो केवल वैश्विक नामस्थान का नाम है, इसलिए यह वास्तव में आवश्यक नहीं है (या तो सेटटाइमआउट या क्लियरटाइम के लिए)।
मैथ्यू क्रुमले

7
चूँकि setTimeout का पहला पैरामीटर एक फंक्शन है और 'removeStatusIndicator ()' एक फंक्शन है, तो आप बस परफॉरमेंस (और टाइप कम) प्राप्त कर सकते हैं: var टाइमर1 = setTimeout (रिमैस्टैटसइंडिसिटर, स्टेटस टाइमआउट); यह नेस्टेड फ़ंक्शन कॉल से बचा जाता है।
हार्लेडेव

5
और window.clearTimeout(timer1)Node.js. में काम नहीं करेगा या तो बस का उपयोग करें clearTimeout(timer1)याglobal.clearTimeout(timer1)
15:22 बजे CL22

2
@ user1944491 कोई दोहरा-आमंत्रण नहीं होगा: ध्यान दें कि @HarleyDave ने लिखा था setTimeout(removeStatusIndicator, ...), अर्थात फ़ंक्शन removeStatusIndicatorको नहीं कहा जाता है।
Frerich Raabe

3
कृपया ध्यान दें कि @ user1944491 क्या कह रहा है - यह गलत है। सेटटाइमआउट के लिए दिए गए फ़ंक्शन को दो बार नहीं कहा जाता है। क्रोम ने अपने व्यवहार को नहीं बदला, अधिक संभावना है कि आपने फ़ंक्शन को कॉल करने के setTimeout( func(), 0 )बजाय खराब कर दियाsetTimeout( func, 0 )
सेठी

2

Window.clearTimeout () को वह करना चाहिए जो आप प्राप्त करने की कोशिश कर रहे हैं।


6
कृपया अपना उत्तर स्पष्ट करें और कुछ उदाहरण दें। एक अच्छे उत्तर में हमेशा एक स्पष्टीकरण होगा कि क्या किया गया था और यह इस तरह से क्यों किया गया था, न केवल ओपी के लिए बल्कि भविष्य के आगंतुकों के लिए एसओ।
B001 B

4
+1 सिर्फ इसलिए कि ऊपर की टिप्पणी मेरे लिए बिल्कुल गैर-प्रासंगिक और यादृच्छिक है। उत्तर बिल्कुल ठीक दिखता है, यह बाद में पोस्ट किया गया था, इसलिए यह पहले से उपलब्ध उत्तर के "कॉपी-पेस्ट" की तरह है।
हमें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.