Mohssen A Mohssen نشر 1 سبتمبر 2022 أرسل تقرير نشر 1 سبتمبر 2022 في اشهر لغات البرمجة مثل Python و PHP وغيرها يوجد دالة sleep لإيقاف الكود بشكل مؤقت لعدد معين من الثواني. كيف أقوم بتطبيق نفس الفكرة في جافاسكريبت، حيث أريد أن يتم طباعة جملة معينة ثم الإنتظار لعدد معين من الثواني ثم طباعة جملة أخرى بعد ذلك: console.log('first'); // sleep(3000; // إيقاف الكود هنا لثلاث ثواني console.log('second'); 1 اقتباس
1 Sam Ahw نشر 1 سبتمبر 2022 أرسل تقرير نشر 1 سبتمبر 2022 من خلال ماتقدّمه الجافاسكريبت من تقنيات async await أو Promise يمكن تنفيذ ذلك بأمر بسيط: على هئية تابع لاستخدامه بمناطق مختلفة ضمن الشيفرة البرمجية: function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } أو const sleep = ms => new Promise(r => setTimeout(r, ms)); أو بسطر واحد فقط يمكن اختصاره كالتالي: await new Promise(r => setTimeout(r, 2000)); اقتباس
0 Ayoub Souad نشر 1 سبتمبر 2022 أرسل تقرير نشر 1 سبتمبر 2022 (معدل) إذا كنت تتطلع إلى منع تنفيذ التعليمات البرمجية من خلال استدعاء sleep ، فعندئذٍ لا ، لا توجد طريقة لذلك في JavaScript. جافا سكريبت لديها طريقة setTimeout. سيتيح لك setTimeout إرجاء تنفيذ وظيفة لمدة x millieseconds. مثلا طباعة first ثم الانتظار لمدة 3 ثواني لتنفيذ وظيفة طباعة second نقوم بالأمر : // millieseconds إرجاء تنفيذ وظيفة لمدة 3 setTimeout(function(){ console.log('second'); }, 3000); // 3 seconds طباعة بعد console.log('first'); عند التنفيذ نحصل على النتيجة التالية: first second اطلع على وظيفة setTimeout من هنا تم التعديل في 1 سبتمبر 2022 بواسطة Ayoub Souad اقتباس
0 Adnane Kadri نشر 1 سبتمبر 2022 أرسل تقرير نشر 1 سبتمبر 2022 هل جربت انشاء دالة مخصصة لذلك؟ لنسميها sleep ايضا! تقوم هاته الدالة بجلب الوقت time الذي تم فيه استدعاءها ثم تنفيذ حلقة while مقيدة بشرط ان يكون وقت تنفيذ التكرارة الواحدة من الحلقة اقل من الوقت الذي تم فيه استدعاء الدالة مضافا اليه الوقت الذي نريد تمريره الى الدالة sleep. تطبيق عملي لها: function sleep(duration){ // جلب الوقت time الذي تم فيه استدعاءها var now = new Date().getTime(); // تنفيذ حلقة while مقيدة بشرط ان يكون وقت تنفيذ التكرارة الواحدة من الحلقة اقل من الوقت الذي تم فيه استدعاء الدالة مضافا اليه الوقت الذي نريد تمريره الى الدالة sleep while(new Date().getTime() < now + duration){ /* لا شيء */ } } function exampleFunc(){ sleep(2000); console.log("Hello"); } exampleFunc() لاحظ ان القيمة المسندة لـ now يتم تنفيذها مرة واحدة. وبالتالي فهي تخزن مرة واحدة في التخزين المحلي. في حين ان تلك التي استعمالها في شرط الحلقة while يتم تحديثها كل حلقة من التكرار الى حد انتفاء الشرط. اقتباس
السؤال
Mohssen A Mohssen
في اشهر لغات البرمجة مثل Python و PHP وغيرها يوجد دالة sleep لإيقاف الكود بشكل مؤقت لعدد معين من الثواني.
كيف أقوم بتطبيق نفس الفكرة في جافاسكريبت، حيث أريد أن يتم طباعة جملة معينة ثم الإنتظار لعدد معين من الثواني ثم طباعة جملة أخرى بعد ذلك:
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.