आप एक अज्ञात फ़ंक्शन बना सकते हैं और इसे तुरंत कॉल कर सकते हैं, सिवाय इसके कि आप setInterval के बजाय setTimeout फ़ंक्शन का उपयोग करें।
(function doStuff() {
//Do Stuff Here
setTimeout(doStuff,20000);
})();
यह फ़ंक्शन निष्पादित करेगा, फिर इसे 20 सेकंड में फिर से कॉल करें।
ध्यान दें कि आपके इच्छित व्यवहार या प्रदर्शन के लिए कुछ मामलों में, सेटटाइटर पर सेटटाइमआउट का उपयोग करना बेहतर हो सकता है। मुख्य अंतर यह है कि setInterval कॉल करता है जो उस टाइमआउट के दौरान कार्य करता है, अगर अंतिम कॉल निष्पादित हो गया है या कोई त्रुटि उत्पन्न होती है तो REGARDLESS। सेटटाइमआउट का उपयोग करना यह फैशन सुनिश्चित करता है कि फ़ंक्शन टाइमर रीसेट से पहले इसके निष्पादन को समाप्त कर देता है। बहुत सारे ट्रेडऑफ बहुत स्पष्ट हैं, लेकिन जब आप अपना आवेदन डिज़ाइन करते हैं तो ध्यान में रखना एक अच्छी बात है।
EDIT पैट्रिक के समय में टाइमआउट रद्द करने की आवश्यकता होने के बारे में चिंता के जवाब में।सबसे अच्छा समाधान गुमनाम समारोह का उपयोग नहीं करने के लिए, और सिर्फ घोषणा के बाद इसे कहते है
var timeout;
function doStuff() {
//doStuff
timeout = setTimeout(doStuff,20000);
}
doStuff()
हाँ यह है कि क्या ओ पी से बचने के लिए कोशिश कर रहा था के समान है, लेकिन यह फ़ंक्शन को कॉल करें और उसके बाद कॉल करने के लिए की जरूरत है निकालता है setInterval फ़ंक्शन, ताकि आप कोड की एक पंक्ति सहेज सकें। आप किसी भी समय फ़ंक्शन को रोक और शुरू कर सकते हैं:
//Stop it
clearTimeout(timeout);
//Start it
doStuff();
जानना अच्छा है। धन्यवाद! – Andrew