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

توابع Async اساسا یک روش برای عملیات غیر همزمان است .برای درک این که این توابع واقعا چه هستند و چگونه کار میکنند ابتدا باید Promise ها را به خوبی درک کنیم.اگر نمیدونید Promise ها چی هستند پیشنهاد میکنم مقاله قبل promise در جاوا اسکریپت  را مطالعه کنید.تا زمانی که Promise رو درک نکنید نمی تونید  مفهوم Async/Await  رو درک کنید.

مهدی بهاری مهدی بهاری

زمان مطالعه

3 دقیقه

بازدید

1414

پرسش و پاسخ

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

فهرست مطالب برای مطالعه

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

Async/Await چیست؟

  • جدیدترین روش نوشتن کدهای غیرهمزمان در جاوااسکریپت
  • غیرقابل انسداد است (درست شبیه Promise و Callback)
  • Async/Await برای ساده سازی روند کار و نوشتن Promise های زنجیره ای طراحی شده است.
  • توابع Async یک Promise رو برمیگردونن. اگر تابع یک خطا رو برمیگردونه،Promise رد شده اصطلاحا reject  و اگر تابع یک مقدار رو برمیگردونه Promise پذیرفته و اصطلاحا resolve شده.

Async/Await چیست؟

Syntax

نوشتن توابع async بسیار ساده است . کافیه که شما کلمه کلیدی async رو قبل از function اضافه کنید و برای منتظر ماندن و گرفتن جواب از await استفاده کنید.

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('hello_async');
    }, 2000);
  });
}

async function asyncCall() {
  console.log('calling');
  var result = await resolveAfter2Seconds();
  console.log(result);
  // expected output: 'resolved'
}

asyncCall();

در کد بالا فانکشن asyncCall اقدام به صدا زدن فانکشن resolveAfter2Seconds میکند که فاکشن مود نظر جواب را برگرداند و متد asyncCall اقدام به چاپ hello_async میکند 

با توجه به کد بالا نحوه تعریف فانکشن به شکل زیر است 

async function name([param[, param[, ...param]]]) {
   statements
}

 

name

نام فانکشن مورد نظر

param

پارامتر های ورودی

statements

بدنه تابع 

امیدوارم از نحوه آموزش بنده خوشتان آمده باشد