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

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

آموزش وعده های جاوا اسکریپت

“قول می دهم نتیجه ای بگیرم!” “تولید کد” کدی است که ممکن است مدتی طول بکشد “کد مصرفی” کدی است که باید منتظر نتیجه بماند Promise یک شی Java جاوا اسکریپت است که لینک تولید کد و کد مصرف کننده…

محمد یوسفی

27 جولای 2021

“قول می دهم نتیجه ای بگیرم!”

“تولید کد” کدی است که ممکن است مدتی طول بکشد

“کد مصرفی” کدی است که باید منتظر نتیجه بماند

Promise یک شی Java جاوا اسکریپت است که لینک تولید کد و کد مصرف کننده را می دهد

JavaScript Promise Object

یک شی JavaScript Promise هم شامل کد تولید کننده است و هم با کد مصرف کننده تماس دارد:

نحو قول

let myPromise = new Promise(function(myResolve, myReject) {
// "Producing Code" (May take some time)

  myResolve(); // when successful
  myReject();  // when error
});

// "Consuming Code" (Must wait for a fulfilled Promise)
myPromise.then(
  function(value) { /* code if successful */ },
  function(error) { /* code if some error */ }
);

وقتی کد اجرایی نتیجه را بدست آورد ، باید یکی از دو پاسخ را فراخوانی کند:


خواص اشیاise را وعده دهید

یک شی JavaScript Promise می تواند:

  • در انتظار
  • انجام شده
  • رد شد

Promise شی از دو ویژگی پشتیبانی می کند: وضعیت و نتیجه .

در حالی که یک مورد Promise “در انتظار” است (کار می کند) ، نتیجه تعریف نشده است.

وقتی یک مورد Promise “تحقق” می یابد ، نتیجه یک مقدار است.

وقتی یک مورد Promise “رد” می شود ، نتیجه یک شی خطا است.

شما نمی توانید به حالت و نتیجه ویژگی های Promise دسترسی پیدا کنید .

برای رسیدگی به وعده ها باید از روش Promise استفاده کنید.


قول دهید چگونه

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

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

Promise.then () دو استدلال می گیرد ، یک پاسخ برای موفقیت و دیگری برای شکست.

هر دو اختیاری هستند ، بنابراین شما می توانید برای موفقیت یا شکست پاسخ مجدد را اضافه کنید.

مثال

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

let myPromise = new Promise(function(myResolve, myReject) {
  let x = 0;

// The producing code (this may take some time)

  if (x == 0) {
    myResolve("OK");
  } else {
    myReject("Error");
  }
});

myPromise.then(
  function(value) {myDisplayer(value);},
  function(error) {myDisplayer(error);}
);

نمونه های قول JavaScript

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

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

منتظر Timeout

مثال با استفاده از تماس مجدد

setTimeout(function() { myFunction("I love You !!!"); }, 3000);

function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
}

مثال استفاده از وعده

let myPromise = new Promise(function(myResolve, myReject) {
  setTimeout(function() { myResolve("I love You !!"); }, 3000);
});

myPromise.then(function(value) {
  document.getElementById("demo").innerHTML = value;
});

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

به عنوان مثال با استفاده از پاسخ به تماس

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(req.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

getFile(myDisplayer);

مثال با استفاده از Promise

let myPromise = new Promise(function(myResolve, myReject) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.htm");
  req.onload = function() {
    if (req.status == 200) {
      myResolve(req.response);
    } else {
      myReject("File not Found");
    }
  };
  req.send();
});

myPromise.then(
  function(value) {myDisplayer(value);},
  function(error) {myDisplayer(error);}
);

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

ECMAScript 2015 که با نام ES6 نیز شناخته می شود ، شی Java JavaScript Promise را معرفی کرد.

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

منبع

مطالب مرتبط

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