जावास्क्रिप्ट प्रोमिस

"I Promise a Result!"

"Producing code(उत्पादक कोड)" वह कोड है जिसे कुछ समय लग सकता है

"Consuming code(उपभोक्ता कोड)" वह कोड है जिसे परिणाम की प्रतीक्षा करनी होगी

Promise एक JavaScript वस्तु है जो उत्पादक कोड और उपभोक्ता कोड को जोड़ती है

JavaScript Promise वस्तु

JavaScript Promise वस्तु उत्पादक कोड और उपभोक्ता कोड की बुलावट को शामिल करती है:

Promise व्याकरण

let myPromise = new Promise(function(myResolve, myReject) {
// "Producing Code"(कुछ समय लग सकता है)
  myResolve(); // सफलता होने पर
  myReject();  // त्रुटि होने पर
req.send();
// "Consuming Code" (एक पूर्ण प्रतिज्ञा की प्रतीक्षा करनी होगी)
});
  function(value) { /* सफलता होने पर के लिए कोड */ },
  function(error) { /* त्रुटि होने पर के लिए कोड */ }
function(error) {myDisplayer(error);}

जब कोड को परिणाम प्राप्त करने के लिए चलाया जाता है तो यह दो रिटर्न कॉलों में से एक को कॉल करना चाहिए:

परिणाम कॉल
सफलता होना myResolve(result value)
त्रुटि होना myReject(error object)

Promise वस्तु गुण

JavaScript Promise वस्तु हो सकती है:

  • Pending
  • Fulfilled
  • Rejected

Promise वस्तु दो गुणों का समर्थन करती है:state और result

जब Promise वस्तु "pending" (काम) होती है तो परिणाम undefined है。

जब Promise वस्तु "fulfilled" होती है तो परिणाम एक मूल्य है。

जब Promise वस्तु "rejected" होती है तो परिणाम एक त्रुटि वस्तु है。

myPromise.state myPromise.result
"pending" undefined
"fulfilled" परिणाम मूल्य
"rejected" error वस्तु

आप Promise के रूपरेखा रूपरेखा state और result गुणों तक पहुंच नहीं हो सकते。

आपको Promise विधि का उपयोग करके Promise को संभालना होगा。

Promise कैसे उपयोग करें

Promise का उपयोग करने के तरीके नीचे दिए गए हैं:}

});
  function(value) { /* सफलता के मामले में कोड */ },
  function(error) { /* error के मामले में कोड */ }
function(error) {myDisplayer(error);}

Promise.then() में दो पारामीटर होते हैं, एक सफलता के लिए और दूसरा विफलता के लिए कॉलबैक。

दोनों वैकल्पिक हैं, इसलिए आप सफलता या विफलता पर कॉलबैक जोड़ सकते हैं。

उदाहरण

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
myReject("File not Found");
let myPromise = new Promise(function(myResolve, myReject) {
  let x = 0;
// कोड उत्पन्न करें (इसमें कुछ समय लग सकता है)
  if (x == 0) {
    myResolve("OK");
  myResolve(req.response);
    myReject("Error");
  myReject("File not Found");
req.send();
});
  myPromise.then(
  function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}

);

JavaScript Promise उदाहरण

Promise के उपयोग का प्रदर्शन करने के लिए, हम विगत अध्याय में कॉलबैक उदाहरण का उपयोग करेंगे:

  • अवधी का इंतजार
  • फ़ाइल का इंतजार

अवधी का इंतजार

कॉलबैक का उदाहरण

setTimeout(function() { myFunction("I love You !!!"); }, 3000);
function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
myReject("File not Found");

);

Promise का उदाहरण

let myPromise = new Promise(function(myResolve, myReject) {
  setTimeout(function() { myResolve("I love You !!"); }, 3000);
req.send();
myPromise.then(function(value) {
  document.getElementById("demo").innerHTML = value;
req.send();

);

फ़ाइल का इंतजार

कॉलबैक का उदाहरण

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(req.responseText);
    myResolve(req.response);
      myCallback("Error: " + req.status);
    myReject("File not Found");
  myReject("File not Found");
  };
myReject("File not Found");
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) {
      if (req.status == 200) {
    myResolve(req.response);
      }
    myReject("File not Found");
  }
  };
req.send();
});
  myPromise.then(
  function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}

);

अपने आप से प्रयोग करें

ब्राउज़र समर्थन

इसीमेक्सप्रिंट 2015, जिसे ES6 भी कहा जाता है, ने जावास्क्रिप्ट Promise ऑब्जेक्ट शुरू किया।

इस तालिका में दर्शाया गया है कि कौन सा ब्राउज़र पहली बार Promise ऑब्जेक्ट को पूरी तरह से समर्थित करता है: आईई फायरफॉक्स सफारी ओपेरा
च्रोम 33 एज 12 फायरफॉक्स 29 सफारी 7.1 ओपेरा 20
2014 वर्ष 2 माह 2015 वर्ष 7 माह 2014 वर्ष 4 माह 2014 वर्ष 9 माह 2014 वर्ष 3 माह