برنامه نویسی

همگام سازی و انتظار – انجمن DEV

برنامه نویسی ناهمزمان در جاوا اسکریپت می تواند کمی چالش برانگیز باشد، به خصوص زمانی که با کدهایی سروکار داریم که به درخواست های شبکه یا سایر وظایف طولانی مدت بستگی دارد. با این حال، معرفی از async و await کلمات کلیدی در ES2017 (also known as ES8) برنامه نویسی ناهمزمان را در جاوا اسکریپت بسیار ساده کرده است. در این مقاله، آنچه را بررسی خواهیم کرد async و await هستند و نحوه استفاده از آنها

async و await چیست؟
async و await دو کلمه کلیدی جدید معرفی شده در ES2017 هستند که برنامه نویسی ناهمزمان را در جاوا اسکریپت ساده می کنند. را

  • async کلمه کلیدی برای تعریف یک تابع ناهمزمان استفاده می شود که وعده ای را برمی گرداند که با مقدار بازگشتی تابع حل می شود.

  • await کلمه کلیدی برای توقف اجرای an استفاده می شود async تا زمانی که یک وعده حل و فصل شود عمل کنید.

یک تابع async به صورت زیر تعریف می شود:

async function myAsyncFunction() {
  // Code here
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

داخل یک async تابع، شما می توانید استفاده کنید await کلمه کلیدی برای توقف اجرای تابع تا زمانی که یک وعده حل شود. نحو استفاده از await به این صورت است:

let result = await myPromise;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

myPromise وعده‌ای است که می‌خواهید منتظر آن باشید و نتیجه آن ارزشی است که قول به آن حل می‌شود.

واکشی داده ها از یک API

بیایید به مثالی نگاهی بیندازیم که نحوه استفاده را نشان می دهد async و await برای واکشی داده ها از یک API.

فرض کنید یک نقطه پایانی API داریم که لیستی از کاربران را برمی گرداند. نقطه پایانی در https://jsonplaceholder.typicode.com/users موجود است. ما می خواهیم این داده ها را واکشی کنیم و نام کاربران را در کنسول ثبت کنیم.

در اینجا این است که چگونه می توانیم آن را با استفاده از آن انجام دهیم async و await:

async function getUsers() {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users');
    const data = await response.json();
    const names = data.map(user => user.name);
    console.log(names);
  } catch (error) {
    console.error(error);
  }
}

getUsers();
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در اینجا، یک را تعریف می کنیم async تابع فراخوانی شد getUsers که داده ها را از API با استفاده از fetch تابع. سپس از await کلمه کلیدی به pause اجرای تابع تا زمانی که داده ها به صورت JSON با استفاده از روش json شی پاسخ واکشی و تجزیه شوند.

هنگامی که داده ها را به عنوان آرایه ای از اشیاء کاربر داشته باشیم، از آن استفاده می کنیم map روشی برای استخراج ویژگی نام هر کاربر، و سپس وارد کردن آرایه حاصل از نام ها در کنسول.

اگر در حین فرآیند واکشی یا تجزیه خطایی وجود داشته باشد، آن را با استفاده از a مدیریت می کنیم try-catch مسدود کردن.

در نهایت، ما به getUsers عملکرد برای شروع عملیات ناهمزمان.

*به عنوان مثال پاسخ دهید: *

  1. https://replit.com/@CodeOf1/asyncawait
  2. https://replit.com/@CodeOf1/asyncawait02

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

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

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

همچنین ببینید
بستن
دکمه بازگشت به بالا