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

السؤال

نشر

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

setTimeout(()=>{
console.log("web api");
},0);

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

one();

أن call Stack يترك Web API methode لل browser لكي يتعامل معها

أي في هذه الحالة تطبع one ثم web api ما معنى هذا الكلام ؟ 

هل كل تعليمة في الجاف سكريبت تنفذ قبل تعليمات web API methode ? 

Recommended Posts

  • 0
نشر

سبب عدم تنفيذ دالة callback بنفس لحظة انتهاء تعريف قسم setTimeout أن الأخيرة تقوم بتعريف حدث غير متزامن asynchronously تضيفه لحلقة الأحداث Event Loop ليتم تنفيذه بعد مضي x من الوقت.

وبما أن باقي الشيفرة لديك هي تسلسلية، فإن setTimeout بقيمة 0 سوف تجعل هذه الدالة تنفذ في أول لحظة مناسبة (مع أقل تأخير) بعد انتهاءاها من الأجزاء الأخرى التي تكون قيد التنفيذ.

لو أضفت setTimeout أخرى مع تأخير 0 أيضاً، سيتم تنفيذها بنفس تسلسل تعريفهم

setTimeout(()=>{
console.log("web api 2");
},0);

setTimeout(()=>{
console.log("web api 1");
},0);

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

one();

one
web api 2
web api 1

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...