ماژولهای Timer در نود جی اس، برای انجام اعمالی که قرار است بعد از گذشت مدت زمان خاصی انجام شوند، یک API سراسری در اختیارمان گذاشته است. تایمر نود جی اس، ساختاری است برای فراخوانی های اعمال مشخص بعد از مدت زمان معین. همچنین زمان فراخوانی تابع، به اینکه کدام عمل تایمر با آن مشارکت دارد و نیز اینکه چه کاری از حلقه رخداد نود جی اس درحال انجام است، بستگی خواهد داشت.
ضمنا نیازی نیست که ذکر کنیم از متد تایمر استفاده می کنیم، چرا که همه اپلیکیشن ها به آن دسترسی سراسری دارند.
متد setImmediate (callback, args*): این متد یک تابع [کال بک] را بلافاصله بعد از اینکه چرخه فعلی حلقه رخدادها تمام شد، اجرا می کند. این متد بعد از هر عملیات I/O که در چرخه فعلی حلقه رخدادها است اجرا می شود اما قبل از زمان بندی شدن برای چرخه بعدی حلقه رخدادها. اولین آرگومان این متد تابعی است که قرار است اجرا شود.
اولین آرگومانی که به setImmediate ارسال خواهد شد، تابعی خواهد بود که قرار است اجرا شود. به مثال زیر دقت کنید:
توجه: علامت ** نشان دهنده آرگومان اختیاری است.
function hello () { console.log("This will run Immediately"); } console.log("It will Print the data Immediately") setImmediate(hello);
کد بالا را اجرا کنید:
>node "setImmediate().js" It will Print the data Immediately This will run Immediately
2. متد setInterval(callback, delay, args**): اگر یک قطعه کد داشته باشیم که بخواهیم چندین بار اجرا کنیم از setInterval() برای اجرای آن استفاده می کنیم. این متد بعنوان اولین آرگومان یک کال بک می گیرد که به تعداد بینهایت بار با تاخیر به اندازه delay میلی ثانیه (آرگومان دوم) اجرا خواهد شد. آرگومانهای اختیاری دیگری بسته به نوع کال بک و پارامترهای آن نیز قابل ارسال است. ولی به یاد داشته باشید که بسته به وضعیت و عملیاتی که ممکن است در حلقه رخدادها وجود داشته باشد، مقدار delay را بصورت تقریبی بیان کنید. به مثال زیر دقت کنید:
توجه: علامت ** به معنای آرگومان اختیاری است.
function hello () { console.log("This will run recursively"); } console.log("It will Print the data recursively after a delay of 2000ms again and again") setInterval(hello,2000);
و اجرای آن:
>node "setInterval().js" It will Print the data recursively after a delay of 2000ms again and again This will run recursively This will run recursively This will run recursively This will run recursively This will run recursively This will run recursively This will run recursively
3. متد setTimeoiut(callback, delay, args**) : این متد می تواند برای اجرای یک کال بک بعد از یک تاخیر مشخص به کار رود. اولین آرگومان این متد، یک کال بک است و مقدار تاخیر نیز به عنوان آرگومان دوم مشخص می شود. آرگومان های بعدی اختیاری است و در صورت نیاز قابل استفاده است. به مثال زیر دقت کنید:
توجه: علامت ** به معنای آرگومان اختیاری است.
function hello () { console.log("This will run only once"); } console.log("It will Print the data once after the delay of 2000ms") setTimeout(hello,2000);
و اجرای آن:
>node "setTimeout().js" It will Print the data once after the delay of 2000ms This will run only once
1. متد clearImmediate(immediate) : به کمک این تابع می توانید شیء ایجاد شده با setImmediate() را پاک کنید.
function hello () { console.log("This will not run at all"); } console.log("It is supposed to print the data immediately") var imm = setImmediate(hello); clearImmediate(imm);
و اجرای آن :
>node "clearImmediate().js" It is supposed to print the data immediately
2. متد clearInterval (timeout) : این متد هم برای پاک کردن شیءای که با setInterval() ایجاد شده، به کار می رود.
function hello () { console.log("This will Not Run at all"); } console.log("It is supposed Print the data recursively after a delay of 2000ms again and again") var s_int = setInterval(hello,2000); clearInterval(s_int);
و اجرای آن:
>node "clearInterval().js" It is supposed Print the data recursively after a delay of 2000ms again and again
3. متد clearTimeout(timeout) : این متد نیز برای پاک کردن شیءای که توسط setTimeout() ایجاد شده به کار می رود. به کد زیر دقت کنید:
function hello () { console.log("This will not run at all"); } console.log("It is supposed to Print the data once after the delay of 2000ms") var tim = setTimeout(hello,2000); clearTimeout(tim);
که نتیجه اجرای آن هم به صورت زیر است:
>node "clearImmediate().js" It is supposed to Print the data once after the delay of 2000ms
در درس امروز از سلسله دروس 30 روز با نود جی اس، در مورد تایمرها در نود جی اس یادگرفتیم. همچنین درمورد روشن کردن و خاموش کردن آنها مثالهایی دیدیم.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.