जावास्क्रिप्ट के साथ काम करते समय, टाइमआउट जैसे अतुल्यकालिक संचालन के प्रवाह को नियंत्रित करना आवश्यक हो सकता है। यहां, हम सक्रिय टाइमआउट को रोकने और फिर से शुरू करने के तरीकों का पता लगाते हैं, साथ ही वर्तमान टाइमआउट पर शेष समय को पुनः प्राप्त करते हैं।
टाइमआउट को रोकने के लिए, आप एक रैपर का उपयोग कर सकते हैं फ़ंक्शन जो window.setTimeout कॉल को इंटरसेप्ट करता है और आवश्यक कार्यक्षमता प्रदान करता है। रैपर फ़ंक्शन, टाइमर, कॉलबैक फ़ंक्शन और देरी को तर्क के रूप में लेता है और शेष समय के रुकने, फिर से शुरू करने और ट्रैकिंग को संभालता है।
var Timer = function(callback, delay) {
var timerId, start, remaining = delay;
this.pause = function() {
window.clearTimeout(timerId);
timerId = null;
remaining -= Date.now() - start;
};
this.resume = function() {
if (timerId) {
return;
}
start = Date.now();
timerId = window.setTimeout(callback, remaining);
};
this.resume();
};
इस रैपर का उपयोग करने के लिए, एक टाइमर ऑब्जेक्ट को तुरंत चालू करें और आवश्यकतानुसार इसके पॉज़() और फिर से शुरू() तरीकों को कॉल करें।
शेष प्राप्त करने के लिए वर्तमान टाइमआउट पर समय, एक तरीका यह है कि टाइमआउट सेट होने पर प्रारंभ समय को संग्रहीत किया जाए और रुकने पर वर्तमान समय और प्रारंभ समय के बीच अंतर की गणना की जाए।
var start = Date.now();
var t = setTimeout("dosomething()", 5000);
var remaining = (start 5000) - Date.now();
हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि यदि टाइमआउट रोक दिया गया है और फिर से शुरू किया गया है, तो यह गणना सटीक नहीं हो सकती है। पहले प्रदान किए गए टाइमर रैपर फ़ंक्शन में, शेष समय को ट्रैक किया जाता है और तदनुसार अद्यतन किया जाता है, जो शेष समय को पुनः प्राप्त करने के लिए अधिक विश्वसनीय तरीका प्रदान करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3