برنامه نویسی

چگونه می توان در پروژه های 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 امروز و ساخت برنامه های وب سریعتر و پاسخگوتر!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا