Async/Await چیست و چه تفاوتی با Promise دارد؟
Async/Await چیست و چه تفاوتی با Promise دارد؟
مقدمه
در برنامهنویسی وب، Async/Await و Promise دو روش برای مدیریت عملیات ناهمگام (Asynchronous) است که توسط JavaScript ارائه شدهاند. در این مقاله به توضیح Async/Await و تفاوتهای آن با Promise میپردازیم.
Promise چیست؟
Promise یک الگوی طراحی برای مدیریت عملیات ناهمگام در JavaScript است. این الگو اجازه میدهد تا توابع ناهمگام را به صورت ساده و قابل فهمی اجرا کنید و از تعداد زیادی callback ها برای انجام کارها جلوگیری کنید.
Async/Await چیست؟
Async/Await یک قابلیت جدید در ECMAScript 2017 است که برای نوشتن کد همزمان (concurrent) استفاده میشود. این قابلیت بر روی Promise ها ایجاد شده و امکان نوشتن کد ناهمگام به صورت همانند کد همگام را فراهم میکند.
تفاوتها بین Async/Await و Promise
- نوشتن کد با Async/Await بسیار سادهتر و قابل فهمتر است نسبت به Promise.
- استفاده از try/catch برای مدیریت خطاها در Async/Await آسانتر است.
- کد نوشته شده با Async/Await معمولاً کمتر و پویا تر است.
مثال کدی
در ادامه یک مثال ساده از Async/Await و Promise را مشاهده میکنید:
// Promise
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched successfully!');
}, 2000);
});
}
fetchData().then(response => {
console.log(response);
});
// Async/Await
async function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched successfully!');
}, 2000);
});
}
async function getData() {
const response = await fetchDataAsync();
console.log(response);
}
getData();
نتیجه گیری
در نهایت، Async/Await و Promise هر دو روشهای قدرتمندی برای مدیریت عملیات ناهمگام در JavaScript هستند. انتخاب بین این دو بستگی به نوع پروژه و تیم توسعه دهنده دارد.




