55 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Window setTimeout Method
 | |
| localeTitle: نافذة setTimeout الطريقة
 | |
| ---
 | |
| ## نافذة setTimeout الطريقة
 | |
| 
 | |
| استدعاء الأسلوب `setTimeout()` دالة أو تقييم تعبير بعد عدد محدد من مللي ثانية.
 | |
| 
 | |
| نصائح:
 | |
| 
 | |
| *   1000 ms = 1 ثانية.
 | |
| *   يتم تنفيذ الوظيفة مرة واحدة فقط. إذا كنت بحاجة إلى تكرار التنفيذ ، استخدم الطريقة `setInterval()` .
 | |
| *   استخدم الأسلوب `clearTimeout()` لمنع الوظيفة من التشغيل.
 | |
| 
 | |
| إن بناء جملة الأسلوب `setTimout()` كما يلي:
 | |
| 
 | |
|  `setTimeout(function, milliseconds, param1, param2, ...); 
 | |
| ` 
 | |
| 
 | |
| فمثلا:
 | |
| 
 | |
|  `setTimeout(function(){ alert("Hello"); }, 3000); 
 | |
| ` 
 | |
| 
 | |
| شيء مهم جداً حول `setTimeout()` هو أنه سيتم تنفيذه بشكل غير متزامن. لنأخذ مثال على ذلك:
 | |
| 
 | |
|  `console.log("A"); 
 | |
|  setTimeout(function(){ console.log("B"); }, 0); 
 | |
|  console.log("C"); 
 | |
|  // The order in the console will be 
 | |
|  // A 
 | |
|  // C 
 | |
|  // B 
 | |
| ` 
 | |
| 
 | |
| **ليس كما exepected! لكننا نحدد فقط 0 ثانية !!!** لحل هذه المشكلة والتأكد من تنفيذ الكود الخاص بنا بشكل متزامن ، يجب علينا فقط ضبط وحدة التحكم الأخيرة في الوظيفة
 | |
| 
 | |
|  `console.log("A"); 
 | |
|  setTimeout(function() { 
 | |
|     console.log("B"); 
 | |
|     console.log("C"); 
 | |
|  }, 0); 
 | |
|  // The order in the console will be 
 | |
|  // A 
 | |
|  // B 
 | |
|  // C 
 | |
| ` 
 | |
| 
 | |
| #### معلومات اكثر:
 | |
| 
 | |
| الوثائق: [MDN](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout)
 | |
| 
 | |
| مزيد من الأمثلة عن وظيفة setTimeout: [w3schools](https://www.w3schools.com/jsref/met_win_settimeout.asp)
 | |
| 
 | |
| لفهم حقيقة ما يحدث تحت غطاء المحرك ، شاهد هذا الفيديو الرائع [فيليب روبرتس: ما هيك هو حلقة الحدث على أي حال؟ | JSConf EU 2014](https://www.youtube.com/watch?v=8aGhZQkoFbQ) |