दिलचस्प पोस्ट
IPhone sdk में textField पर ईमेल सत्यापन व्यवस्थापक विशेषाधिकारों के साथ किसी प्रक्रिया से प्रशासक विशेषाधिकारों के बिना नई प्रक्रिया कैसे आरंभ करें? Android वेबदृश्य एंकर लिंक (कूद लिंक) काम नहीं कर रहा है सी # में आरे का आकार (लंबाई) jQuery स्क्रीन संकल्प ऊँचाई समायोजन सीतनिद्रा में होना: MyInterceptor # onFlushDirty कभी नहीं कहा जाता है सी # में कई इनपुट डिवाइस के बीच अंतर कैसे करें $ स्थान भ्रामक स्थान बदलेंइसेविशेष और $ stateChangeStart ClearCase UCM – घटकों का उपयोग करने के सर्वोत्तम अभ्यास कैसे शुरू करने के लिए var? जेविटी में एक तत्व (नेत्रहीन) के तहत खड़ी किए गए तत्वों को ढूंढें PHP का उपयोग करके HTML को पीडीएफ में परिवर्तित करना (पीडीएफ से HTML नहीं) गूगल मैप एपीआई v3 ~ बस एक infowindow बंद करें? iOS7 UITextView contentize.height वैकल्पिक दृश्य स्टूडियो में डिफ़ॉल्ट रूप से प्रोजेक्ट से सुरक्षित चेतावनियां निकालें (_CRT_SECURE_NO_WARNINGS)

बड़ा सेट मिटाने के लिए टाइमटाइम () "ब्रेक" क्यों करता है?

सेट अप करने के लिए एक बड़े मिलिसेकंड मान को पास करते समय मुझे कुछ अप्रत्याशित व्यवहार के लिए आया था setTimeout() उदाहरण के लिए,

 setTimeout(some_callback, Number.MAX_VALUE); 

तथा

 setTimeout(some_callback, Infinity); 

दोनों के कारण some_callback को लगभग तुरंत चलाया जा सकता है, जैसे कि मैं देरी के रूप में बड़ी संख्या के बजाय 0 पारित करता हूं।

ऐसा क्यों होता है?

Solutions Collecting From Web of "बड़ा सेट मिटाने के लिए टाइमटाइम () "ब्रेक" क्यों करता है?"

यह सेट-टाइमआउट सेट करने के कारण देरी को स्टोर करने के लिए 32 बिट इंट का उपयोग करता है, जिससे अधिकतम मूल्य की अनुमति होगी

 2147483647 

अगर तुम कोशिश करो

 2147483648 

आप अपनी समस्या होने वाली हो

मैं केवल अनुमान लगा सकता हूं कि यह जेएस इंजन में आंतरिक अपवाद के कुछ फार्म का कारण बना रहा है और फ़ंक्शन को बिना किसी जगह की बजाय तुरंत आग लगने के कारण।

यहां कुछ स्पष्टीकरण: http://closure-library.googlecode.com/svn/docs/closure_goog_timer_timer.js.source.html

टाइम-आउट मूल्यों को हस्ताक्षरित 32-बिट पूर्णांक में फिट करने के लिए बहुत बड़ा है, एफएफ, सफारी, और क्रोम में ओवरफ्लो का कारण हो सकता है, जिसके परिणामस्वरूप समय-समय पर तुरंत ही अनुसूचित किया जा रहा है यह केवल इन समय-सारिाओं को शेड्यूल करने के लिए अधिक समझ में आता है, चूंकि 24.8 दिनों के लिए ब्राउज़र के खुले रहने के लिए उचित उम्मीद से परे है।

आप उपयोग कर सकते हैं:

 function runAtDate(date, func) { var now = (new Date()).getTime(); var then = date.getTime(); var diff = Math.max((then - now), 0); if (diff > 0x7FFFFFFF) //setTimeout limit is MAX_INT32=(2^31-1) setTimeout(function() {runAtDate(date, func);}, 0x7FFFFFFF); else setTimeout(func, diff); } 
 Number.MAX_VALUE 

वास्तव में एक पूर्णांक नहीं है सेट टाइमआउट के लिए अधिकतम स्वीकार्य मान 2 ^ 31 या 2 ^ 32 की संभावना है प्रयत्न

 parseInt(Number.MAX_VALUE) 

और आपको 1.7976931348623157e + 308 के बजाए 1 वापस मिलता है।