setTimeout
هي function
كاينة في javascript
كاتمكنك من أنك تنفد ألاوامر بعد مدة زمنية محددة. فهاد المقال غانتعرفو على طريقة عملها و كيفية إستخدامها.
طريقة إستخدام setTimeout
:
فهاد المثال غادي نكتبو في ل console
هاد الجملة Hello world
بعد 3 ثواني.
setTimeout(function(){ console.log("Hello World"); }, 3000);
إنطلاقا من هاد المثال بإمكانا نقولو ان setTimeout
كاتكتب على هاد الشكل:
setTimeout(function , المدة الزمنية);
-
function
: هي اللي كايكون فيها ل code اللي بغيتيه إتنفد من بعد المدة الزمنية. -
المدة الزمنية
: هي الوقت اللي بغيتيه إدوز عاد إتنفد ل code. كايتكتب بالميليسوكوندmillisecond
, كل 1000 millisecond كاتساوي ثانية واحدة.
ل function
بإمكانك تكتبها مباشرة في setTimeout
بحال هاد الشكل.
setTimeout(function(){ console.log("Hello World"); }, 3000);
أو تكتبها بوحدها و تعطي ل setTimeout
الإسم ديالها :
function hello(){ console.log("Hello World"); } setTimeout(hello, 3000);
الأن نفتارضو عندنا function
كاتقبل في ل parameters
ديالها إسم, مثلا عطيناها Hassan
, غاتكتب في ل console هاد الجملة Hello Hassan
. ل function
غاتكون على هاد الشكل:
function hello(name){ console.log("Hello " + name); }
إلى بغينا نفدو هاد ل function
بعد مدة زمنية بإستخدام setTimeout
. ربما غاضنو اننا غانكتبوها بهاد الطريقة :
setTimeout(hello("Hassan"), 3000);
إلى كتبتيها بهاد الطريقة, ل function
غاتنفد مباشرة بدون إنتظار المدة الزمنية, لأن javascript
ملي كايشوف شي function
عندها الأقواس كايقوم بالتنفيد ديالها مباشرة. إذا كيفاش غانعطيوها ل parameters
؟
قلت ان setTimeout
كاتقبل function
و كاتقبل مدة زمنية
, اللي ما قلتوش هو ان أي حاجة جات من بعدهم كاتعتابر parameter
ديال ل function
. إذا ل code غايتكتب بهاد الشكل:
setTimeout(hello, 3000, "Hassan");
طريقة إلغاء setTimeout
:
الأن غانشوفو كيفاش نلغيو أو نوقفو العمل ديال setTimeout
قبل إنتهاء المدة الزمنية. مثلا عطينا ل setTimeout
واحد ل function
و قلنالها تنفدها بعد 7 ثوان , و لسبب ما قررنا نلغيوها قبل ما تتنفد.
ملي كانخدمو setTimeout
كاترد لينا ID
خاص بها اللي هو مجرد رقم, وبإستخدام هاد ل ID
بإمكانا نلغيوها.
const timeoutId = setTimeout(function(){ console.log("Hello World"); }, 7000);
فهاد المثال قمنا بحفض ل ID
ديال setTimeout
في متغير سميناه timeoutId
.
الأن باش نلغيوها غانستاعنو ب clearTimeout
اللي المهمة ديالها الوحيدة هي تلغي العمل ديال setTimeout
.
هاد clearTimeout
كاتقبل في ل parameters
ديالها حاجة وحدة اللي هي ل ID
ديال setTimeout
اللي بغينا نلغيو.
clearTimeout(timeoutId);
بهاد الشكل غانكونو لغينا العمل ديال setTimeout
.