Javascript

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

5

کاربرد async/await در جاوا اسکریپت

آواتار
ساناز میرباقری

توابع async/await در جاوااسکریئت چی هستند و کجاها کاربرد دارند؟ اصلا چرا از این توابع استفاده میکنیم؟ 


آواتار
انصراف
2 پاسخ ها
5
آواتار
فردین مردانی
بهترین پاسخ


Async/await یک ویژگی جدید در جاوا اسکریپت است که کار با توابع ناهمزمان را سادهتر و خواناتر میکند. Async/await بر اساس promise ها کار میکند و به شما اجازه میدهد که به جای استفاده از then و catch برای مدیریت حالات مختلف promise ، از کلمات کلیدی async و await استفاده کنید.

Async یک کلمه کلیدی است که برای تعریف یک تابع ناهمزمان استفاده میشود. یک تابع ناهمزمان یک promise را برمیگرداند که میتواند حالت پذیرفته شده (fulfilled) یا رد شده (rejected) باشد. مقداری که تابع ناهمزمان برمیگرداند، مقداری است که promise پذیرفته شده دارد. اگر تابع ناهمزمان یک خطا را برگرداند یا throw کند، promise رد شده خواهد بود.

Await یک کلمه کلیدی است که برای انتظار برای اتمام یک promise استفاده میشود. Await فقط در داخل یک تابع ناهمزمان قابل استفاده است و باعث میشود که اجرای تابع متوقف شود تا promise کامل شود. سپس مقدار promise را برمیگرداند. اگر promise رد شده باشد، await یک خطا را throw میکند که میتوان با try/catch بررسی کرد.

با استفاده از async/await میتوانید کدهای ناهمزمان را به شکل همزمان بنویسید و از تودرتو شدن و پیچیدگی کدها جلوگیری کنید. مثال زیر نشان میدهد که چگونه میتوان از async/await برای دریافت داده از یک API استفاده کرد:

آواتار
انصراف
1
آواتار
ساناز میرباقری
بهترین پاسخ

در جاوا اسکریپت multitask وجود ندارد؛ بنابراین توابع باید پشت سر هم اجرا شوند. فرآیند‌های مختلفی وجود دارند که اجرای آن‌ها منوط به اجرای فرآیندهای قبلی است؛ مثلا برای محاسبه‌ی میانگین چند عدد ابتدا باید این اعداد با هم جمع شوند و خروجی آن بر تعداد اعداد تقسیم شود. برای میانگین گیری شما نمی‌توانید ابتدا عمل تقسیم را انجام دهید و سپس اعداد را با هم جمع کنید؛ چون به خروجی جمع برای تقسیم نیاز خواهید داشت. برای درک بهتر توابع آسنکرون به تصویر زیر دقت کنید.

کاری که باید انجام شود این است که توابع با هم همگام شوند و ترتیب اجرای آن‌ها مشخص شود. این دقیقا همان کاری است که افزونه‌ی Async و  await در جاوا اسکریپت برای ما انجام می‌دهند. این افزونه بر اساس promise ها کار می‌کند

اطلاعات تکمیلی در این لینک

1 توضیح
آواتار
انصراف
آواتار
مصطفی برمشوری
-

این جواب خیلی مبهم هست. کاربرد اصلی async/await در مالتی تسک نیست. مهم‌ترین کاربرد این مدل در حالتی است که شما برای تکمیل شدن یک کار باید صبر کنید.