05/08/2026
إذا بدأت تتعلم JavaScript، فمن الطبيعي أن تحتار في موضوع **Async/Await**. أنا أيضاً في البداية كنت أرى `async` و `await` وأستخدمهما بدون أن أفهم ما الذي يحدث فعلاً.
لنأخذ مثالاً بسيطاً.
تخيل أنك طلبت وجبة في مطعم.
إذا بقيت واقفاً أمام الكاشير حتى تجهز، فأنت لا تستطيع فعل أي شيء آخر خلال هذا الوقت.
أما إذا أعطاك جهاز انتظار، فستجلس أو تتصفح هاتفك إلى أن يهتز الجهاز ويخبرك بأن طلبك جاهز.
هذا قريب جداً من طريقة عمل **Async/Await**.
عندما تكتب:
```js
const response = await fetch(url);
```
فأنت لا توقف المتصفح بالكامل، بل تخبر JavaScript: *انتظر نتيجة هذا الطلب، وخلال ذلك دع بقية المهام تستمر بشكل طبيعي.*
قبل Async/Await كان أغلب المطورين يستخدمون Promises بهذا الشكل:
```js
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
```
أما باستخدام Async/Await يصبح الكود أقرب للقراءة:
```js
async function getData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
```
لا يعني هذا أن `.then()` أصبحت خاطئة، فهي ما زالت مفيدة في بعض الحالات، لكن في أغلب الأحيان تجعل **Async/Await** الكود أوضح وأسهل في القراءة، خاصة عندما يكون لديك أكثر من عملية غير متزامنة.
**سؤال:** متى تستخدم `await`، ومتى تفضل `.then()`؟ شارك رأيك أو مثالاً من مشروع تعمل عليه.
#برمجة