‎‎ناهمگام جاوااسكريپتJavaScript Async -‎

Previous >    <Next  

‎async‎وawait ساخت پروميس را براي نوشتن آسانتر ميكند .

‎async‎تابعي ميسازد كه يك پروميس برگشت ميدهد

‎await‎تابعي ميسازد كه براي پروميس انتظار ايجاد ميكند .

‎‎فرمت كلي يا نحوAsync

‎‎كيورد‎async‎ قبل از يك تابع باعث ميشود كه تابع قولي را برگشت دهد .

‎‎مثال ـ استفاده‎async

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

‎‎آن مشابه با كد زيراست:

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

‎‎در زير نحوي استفاده ازPromise آمده است .

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

‎‎مثال ـ استفاده‎async‎ با متد then

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

--(go to editor for change code and run)

‎‎مثال ـ مثال بالا ساده تر بدون داشتن انتظار خطا

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

--(go to editor for change code and run)

‎‎فرمت كلي يا نحوawait

‎‎كيورد‎await‎ فقط ميتواند در داخل يك تابع با‎async‎ باشد.

‎كلمه كليدي ‎await‎‎باعث ميشود كه تابع اجرا را متوف كند وقبل ازادامه آن منتظر يك قول حل شده ‎بماند:

‎let value=await promise;‎

‎مثال ـ براي تكميل آهسته تر مطالب مثال با فرم ويا نحو پايه‎(Basic Syntax)‎ آماده ‎است.

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

myDisplay();

--(go to editor for change code and run)

‎دو آرگومانresolve و reject از پيش تعريف شده جاوااسكريپت ميباشند، آنها توسط ما ايجاد نمي ‎شوند، اما زماني كه تابع اجرائي آماده شد يكي آنها را فراخوان يا مورد اسفاده قرار ميدهيم.

‎‎بيشتر مواقع نياز بهreject function نمي باشد .

‎‎مثال ـ بدون استفاده ازreject function

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

myDisplay();

--(go to editor for change code and run)

‎‎مثال ـ درانتظار مهلت زماني‎(Waiting for a Timeout )

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

myDisplay();

--(go to editor for change code and run)

‎‎مثال ـ در انتظار يك فايل‎( Waiting for a File)

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

getFile();

--(go to editor for change code and run)

‎‎پشتيباني مرورگرBrowser Support -‎

‎ECMAScript 2017‎كيورد هاي‎async , await‎ جاوااسكريپت را معرفي كرد .

‎‎در جدول زير اعداد اولين نسخه اي هستند كه از اشياء پروميس كاملا پشتيبباني ميكنند.

Chorome Edge Firefox Safari Opera
‎‎55‎
Dec 2016‎
‎‎15‎
Apr 2017‎
‎‎52‎
Mar 2017‎
‎‎11‎
Sep 2017‎
‎‎42‎
Dec 2016‎

Previous >    <Next