چگونه می توان در پروژه های JavaScript خود async ()

برنامه نویسی ناهمزمان جنبه مهمی از توسعه مدرن JavaScript است که برنامه ها را قادر می سازد تا وظایفی مانند تماس های API ، عملیات پرونده و نمایش داده های پایگاه داده را به طور کارآمد انجام دهند. در async
وت await
نحو کار با توابع ناهمزمان را ساده تر می کند و باعث می شود کد قابل خواندن و قابل کنترل تر باشد. این راهنما نحوه استفاده مؤثر را بررسی می کند async
در پروژه های JavaScript خود در سال 2025 و بعد از آن.
1 درک جاوا اسکریپت ناهمزمان
JavaScript تک رشته ای است ، به این معنی که یک بار یک عمل را انجام می دهد. بدون برنامه نویسی ناهمزمان ، کارهای طولانی مدت مانند درخواست های شبکه یا نمایش داده های پایگاه داده می تواند اجرای را مسدود کند و باعث ایجاد تنگناهای عملکردی می شود.
الگوهای ناهمزمان مشترک:
- تماس تلفنی: روش سنتی رسیدگی به عملیات ناهمزمان ، که اغلب منجر به جهنم پاسخ می شود.
-
وعده ها: معرفی شده برای رسیدگی به وظایف async با کارآمدتر
.then()
زنجیر کردن - async/در انتظار: یک نحو مدرن و تمیز تر برای دستیابی به وعده ها در JavaScript.
2 چگونه کار می کند و در انتظار کار است
در async
کلمه کلیدی برای تعریف یک عملکرد ناهمزمان استفاده می شود و await
کلمه کلیدی تا زمان حل یک وعده ، اجرای را متوقف می کند.
نحو اساسی:
async function fetchData() {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log(data);
}
مزایای کلیدی:
code کد ناهمزمان را ساده می کند
read قابلیت خواندن را بیش از حد بهبود می بخشد .then()
زنجیر
lest لانه سازی تماس تلفنی مستعد خطا را کاهش می دهد
3 با استفاده از Async/در انتظار با استفاده از خطا
رسیدگی به خطاها در کد ناهمزمان برای جلوگیری از تصادفات کاربردی ضروری است.
تلاش برای رسیدگی به خطا:
async function getUserData() {
try {
let response = await fetch('https://api.example.com/user');
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
let user = await response.json();
console.log(user);
} catch (error) {
console.error('Error fetching user data:', error);
}
}
بهترین روشها:
- همیشه استفاده کنید باکتری برای رسیدگی به خطاها در توابع async.
- بررسی کردن وضعیت پاسخ قبل از پردازش داده ها
- خطاهای ورود به سیستم برای اشکال زدایی بهتر و نظارت.
4 اجرای چندین توابع async به طور موازی
به جای اجرای توابع async به صورت متوالی ، می توانید آنها را به صورت موازی با استفاده از Promise.all()
بشر
مثال: واکشی چندین API به طور همزمان
async function fetchMultipleData() {
try {
let [users, posts] = await Promise.all([
fetch('https://api.example.com/users').then(res => res.json()),
fetch('https://api.example.com/posts').then(res => res.json())
]);
console.log(users, posts);
} catch (error) {
console.error('Error fetching data:', error);
}
}
چرا از Promise.all () استفاده می کنیم؟
با اجرای درخواست ها به صورت موازی ، عملکرد را بهبود می بخشد
✅ تأخیرهای غیر ضروری ناشی از اجرای پی در پی را کاهش می دهد
✅ چندین درخواست API را به طور کارآمد کنترل می کند
5 با استفاده از توابع async در حلقه ها
با استفاده از await
در داخل حلقه ها می تواند باعث تنگناهای عملکرد شود. در عوض ، در صورت امکان وظایف ASYNC را به صورت موازی پردازش کنید.
از این کار خودداری کنید:
async function fetchItems() {
for (let item of items) {
let data = await fetch(`https://api.example.com/item/${item}`);
console.log(await data.json());
}
}
برای عملکرد بهتر از Promise.all () استفاده کنید:
async function fetchItemsEfficiently() {
let promises = items.map(item => fetch(`https://api.example.com/item/${item}`).then(res => res.json()));
let results = await Promise.all(promises);
console.log(results);
}
✅ چندین درخواست را همزمان اجرا می کند
time زمان اجرای کل را کاهش می دهد
6 async/در انتظار با دست زدن به زمان
اگر یک عمل async خیلی طولانی طول می کشد ، می توانید با استفاده از مکانیسم زمان بندی را پیاده سازی کنید Promise.race()
بشر
مثال: تنظیم یک زمان برای تماس های API
function timeout(ms) {
return new Promise((_, reject) => setTimeout(() => reject(new Error('Request timed out')), ms));
}
async function fetchDataWithTimeout() {
try {
let response = await Promise.race([
fetch('https://api.example.com/data'),
timeout(5000) // 5-second timeout
]);
let data = await response.json();
console.log(data);
} catch (error) {
console.error('Error or timeout:', error);
}
}
✅ از آویز نامحدود درخواست های خود جلوگیری می کند
✅ قابلیت اطمینان برنامه را افزایش می دهد
7 ترکیب توابع async با شنوندگان رویداد
توابع ASYNC می تواند در داخل دستگیرندگان رویداد برای پردازش تعامل کاربر به طور کارآمد استفاده شود.
مثال: دکمه هندلینگ به صورت غیر همزمان کلیک می کند
document.getElementById('loadData').addEventListener('click', async () => {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log('Data loaded:', data);
} catch (error) {
console.error('Failed to load data:', error);
}
});
✅ تجربه کاربر صاف را تضمین می کند
✅ تماس های API را به طور کارآمد در جریان کار رویداد محور کنترل می کند
پایان
تسلط async
وت await
برای توسعه مدرن جاوا اسکریپت ضروری است. با اجرای بهترین شیوه ها مانند رسیدگی به خطا ، اجرای موازی ، زمان بندی و حلقه های کارآمد، توسعه دهندگان می توانند برنامه های با کارایی بالا را با کد تمیز و قابل خواندن ایجاد کنند.
بهینه سازی پروژه های JavaScript خود را با async
امروز و ساخت برنامه های وب سریعتر و پاسخگوتر!