اذهب إلى المحتوى
  • 0

setTimeout

Yehia Amin2

السؤال

نشر

فى الكود التالى 

لماذا لا تعمل setTimeout   بدون () => Arrow Function

ما دلالة ومعنى arrow Function () =>

ولماذا عند تهميش arrow function  لا يعمل الكود؟!

setTimeout( /*() =>*/ console.log("Hello Yehia"), 3000);

 

Recommended Posts

  • 0
نشر

المشكلة هنا تكمن في طريقة عمل setTimeout. فالكود الذي كتبته:

setTimeout(console.log("Hello Yehia"), 3000);

هذا لا يعمل كما تتوقع لأنك نفذت console.log مباشرة بدل أن ترسلها كدالة ليتم تنفيذها بعد 3 ثوان.

وإليك كيف تعمل الدالة setTimeout  تتوقع الشكل التالي:

setTimeout(دالة, الوقت);

يعني أن : 

  • الوسيط الأول: دالة (Function)
  • الوسيط الثاني: عدد المللي ثانية التي يتم تنفيذ الدالة بعدها.

هكذا :

setTimeout(() => {
  console.log("Hello Yehia");
}, 3000);

إذا setTimeout تحتاج أن يتم تمرير دالة لها حتى تقوم بتنفيذ تلك الدالة بعد عدد معين من الثواني . ولكن لو لم تمرر لها دالة فسيتم تنفيذ الكود في الحال كما حدث معك. إذا يجب عليك تمرير دالة إلى setTimeout سواء كانت دالة سهمية أو دالة عادية .

ما معنى () => هذه تسمى Arrow Function أى دالة سهمية وهي طريقة مختصرة لكتابة الدوال في JavaScript بشكل سريع.

فمثلا الشكل العادي للدالة : 

function () {
  console.log("Hello");
}

نفس الشيء بالـ Arrow Function:

() => {
  console.log("Hello");
}

إذا تستخدم الدالة السهمية للسهولة وإستخدام دالة في مكان واحد ولن تستخدمها في أكثر من مكان وهنا بدلا من تعريف دالة في مكان منفصل وإستخدامها مرة واحدة نستخدم الدالة السهمية مباشرة في المكان الذي نريده .

بتاريخ 8 دقائق مضت قال Yehia Amin2:

ولماذا عند تهميش arrow function  لا يعمل الكود؟!

كما أخبرتك لأن هذا هو طريقة عمل setTimeout يجب أن تمرر دالة لها ليتم تنفيذ تلك الدالة بعد مدة من الزمن ولكن إذا لم تمرر لها دالة فلن تستطيع أن تعرف setTimeout ما الذي ستنفذه بعد المدة المحددة .

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...