٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش JavaScript Async

“همگام سازی و انتظار برای نوشتن وعده ها آسان تر است” async باعث می شود که تابع یک Promise باشد await عملکردی را منتظر قول قرار می دهد نحو Async کلمه کلیدی asyncقبل از یک تابع عملکرد را نوید می دهد: مثال async function myFunction()…

محمد یوسفی

27 جولای 2021

“همگام سازی و انتظار برای نوشتن وعده ها آسان تر است”

async باعث می شود که تابع یک Promise باشد

await عملکردی را منتظر قول قرار می دهد

نحو Async

کلمه کلیدی asyncقبل از یک تابع عملکرد را نوید می دهد:

مثال

async function myFunction() {
  return "Hello";
}

مثل این هست که:

async function myFunction() {
  return Promise.resolve("Hello");
}

در اینجا نحوه استفاده از Promise آمده است:

myFunction().then(
  function(value) { /* code if successful */ },
  function(error) { /* code if some error */ }
);

مثال

async function myFunction() {
  return "Hello";
}
myFunction().then(
  function(value) {myDisplayer(value);},
  function(error) {myDisplayer(error);}
);

یا ساده تر ، زیرا شما انتظار یک مقدار طبیعی را دارید (یک پاسخ طبیعی ، نه یک خطا):

مثال

async function myFunction() {
  return "Hello";
}
myFunction().then(
  function(value) {myDisplayer(value);}
);

منتظر نحو باشید

کلمه کلیدی awaitقبل از یک عملکرد باعث می شود که عملکرد منتظر قول باشد:

let value = await promise;

awaitکلمه کلیدی را تنها می توان در داخل یک استفاده asyncتابع.


مثال

بیایید آرام برویم و یاد بگیریم که چگونه از آن استفاده کنیم.

نحو اساسی

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    myResolve("I love You !!");
  });
  document.getElementById("demo").innerHTML = await myPromise;
}

myDisplay();

منتظر Timeout

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    setTimeout(function() { myResolve("I love You !!"); }, 3000);
  });
  document.getElementById("demo").innerHTML = await myPromise;
}

myDisplay();

منتظر یک پرونده

async function getFile() {
  let myPromise = new Promise(function(myResolve, myReject) {
    let req = new XMLHttpRequest();
    req.open('GET', "mycar.html");
    req.onload = function() {
      if (req.status == 200) {myResolve(req.response);}
      else {myResolve("File not Found");}
    };
    req.send();
  });
  document.getElementById("demo").innerHTML = await myPromise;
}

getFile();

پشتیبانی مرورگر

ECMAScript 2017 کلمات کلیدی JavaScript asyncو await.

جدول زیر اولین نسخه مرورگر را با پشتیبانی کامل از هر دو تعریف می کند:

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها