जेएस ट्यूटोरियल

जेएस होम जे एस परिचय जे एस कहाँ करने के लिए जेएस आउटपुट जेएस स्टेटमेंट्स जेएस सिंटेक्स जे एस टिप्पणियाँ जेएस चर जे एस लेट जेएस कॉन्स्ट जेएस ऑपरेटर्स जे एस अंकगणित जेएस असाइनमेंट जेएस डेटा प्रकार जे एस कार्य जेएस ऑब्जेक्ट्स जेएस इवेंट्स जे एस स्ट्रिंग्स जे एस स्ट्रिंग तरीके जे एस स्ट्रिंग खोज जे एस स्ट्रिंग टेम्पलेट्स जेएस नंबर जेएस संख्या के तरीके जे एस सरणी जेएस सरणी के तरीके जेएस ऐरे सॉर्ट जेएस सरणी पुनरावृत्ति जेएस ऐरे कॉन्स्ट जे एस तिथियाँ जेएस तिथि प्रारूप जेएस तिथि प्राप्त करने के तरीके जे एस दिनांक सेट तरीके जे एस मठ जे एस रैंडम जे एस बूलियन्स जेएस तुलना जे एस शर्तें जे एस स्विच जेएस लूप फॉर In . के लिए JS लूप ओएफ के लिए जेएस लूप जेएस लूप जबकि जेएस ब्रेक जेएस Iterables जेएस सेट जेएस मैप्स जेएस टाइपोफ जे एस प्रकार रूपांतरण जेएस बिटवाइज जेएस रेगएक्सपी जे एस त्रुटियाँ जेएस स्कोप जे एस उत्थापन जेएस सख्त मोड जेएस यह कीवर्ड जेएस एरो फंक्शन जेएस क्लासेस जेएस JSON जेएस डिबगिंग जेएस स्टाइल गाइड जेएस सर्वोत्तम अभ्यास जेएस गलतियाँ जेएस प्रदर्शन जेएस आरक्षित शब्द

जेएस संस्करण

जेएस संस्करण जेएस 2009 (ES5) जेएस 2015 (ईएस6) जेएस 2016 जेएस 2017 जेएस 2018 जेएस आईई / एज जेएस इतिहास

जेएस ऑब्जेक्ट्स

वस्तु परिभाषाएँ वस्तु गुण वस्तु के तरीके वस्तु प्रदर्शन ऑब्जेक्ट एक्सेसर्स वस्तु निर्माता वस्तु प्रोटोटाइप वस्तु पुनरावर्तनीय वस्तु समूह वस्तु मानचित्र वस्तु संदर्भ

जे एस कार्य

फ़ंक्शन परिभाषाएँ फंक्शन पैरामीटर्स समारोह आमंत्रण फंक्शन कॉल समारोह लागू करें फंक्शन क्लोजर

जेएस क्लासेस

कक्षा परिचय वर्ग वंशानुक्रम क्लास स्टेटिक

जे एस एसिंक

जेएस कॉलबैक जे एस अतुल्यकालिक जे एस वादा जे एस एसिंक/प्रतीक्षा

जेएस एचटीएमएल डोम

डोम परिचय डोम तरीके डोम दस्तावेज़ डोम तत्व डोम एचटीएमएल डोम फॉर्म डोम सीएसएस डोम एनिमेशन डोम घटनाक्रम डोम इवेंट श्रोता डोम नेविगेशन डोम नोड्स डोम संग्रह डोम नोड सूचियाँ

जेएस ब्राउज़र बीओएम

जेएस विंडो जेएस स्क्रीन जेएस स्थान जेएस इतिहास जेएस नेविगेटर जेएस पॉपअप अलर्ट जेएस टाइमिंग जे एस कुकीज़

जेएस वेब एपीआई

वेब एपीआई परिचय वेब फॉर्म एपीआई वेब इतिहास एपीआई वेब संग्रहण API वेब वर्कर एपीआई वेब फ़ेच एपीआई वेब जियोलोकेशन एपीआई

जे एस अजाक्स

AJAX परिचय अजाक्स एक्सएमएलएचटीपी अजाक्स अनुरोध अजाक्स प्रतिक्रिया अजाक्स एक्सएमएल फ़ाइल अजाक्स पीएचपी अजाक्स एएसपी AJAX डेटाबेस अजाक्स अनुप्रयोग अजाक्स उदाहरण

जेएस JSON

JSON परिचय JSON सिंटैक्स जेएसओएन बनाम एक्सएमएल JSON डेटा प्रकार JSON पार्स JSON स्ट्रिंगिफ़ाई JSON ऑब्जेक्ट्स JSON सरणियाँ JSON सर्वर जेएसओएन पीएचपी जेएसओएन एचटीएमएल जेएसओएन जेएसओएनपी

जेएस बनाम jQuery

jQuery चयनकर्ता jQuery एचटीएमएल jQuery सीएसएस jQuery डोम

जेएस ग्राफिक्स

जेएस ग्राफिक्स जेएस कैनवास जे एस प्लॉटली जेएस चार्ट.जेएस जेएस गूगल चार्ट जेएस डी3.जेएस

जेएस उदाहरण

जेएस उदाहरण जेएस एचटीएमएल डोम जेएस एचटीएमएल इनपुट जेएस एचटीएमएल ऑब्जेक्ट्स जेएस एचटीएमएल इवेंट्स जेएस ब्राउज़र जे एस संपादक जे एस व्यायाम जे एस प्रश्नोत्तरी जेएस प्रमाणपत्र

जे एस संदर्भ

जावास्क्रिप्ट ऑब्जेक्ट्स एचटीएमएल डोम ऑब्जेक्ट्स


जावास्क्रिप्ट वादे

"मैं एक परिणाम का वादा करता हूँ!"

"उत्पादन कोड" वह कोड है जिसमें कुछ समय लग सकता है

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

एक वादा एक जावास्क्रिप्ट ऑब्जेक्ट है जो उत्पादन कोड और उपभोग कोड को जोड़ता है

जावास्क्रिप्ट वादा वस्तु

एक जावास्क्रिप्ट प्रॉमिस ऑब्जेक्ट में उत्पादन कोड और उपभोग करने वाले कोड के लिए कॉल दोनों होते हैं:

वादा वाक्य रचना

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 */ }
);

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

परिणामबुलाना
सफलताmyResolve (परिणाम मान)
त्रुटिmyReject (त्रुटि वस्तु)

वादा वस्तु गुण

एक जावास्क्रिप्ट वादा वस्तु हो सकती है:

  • लंबित
  • पूरा
  • अस्वीकार कर दिया

प्रॉमिस ऑब्जेक्ट दो गुणों का समर्थन करता है: राज्य और परिणाम

जबकि एक वादा वस्तु "लंबित" (काम कर रही है), परिणाम अपरिभाषित है।

जब एक वादा वस्तु "पूरा" होता है, तो परिणाम एक मूल्य होता है।

जब एक वादा वस्तु "अस्वीकार" होती है, तो परिणाम एक त्रुटि वस्तु होती है।

myPromise.statemyPromise.result
"लंबित"अपरिभाषित
"पूरा"एक परिणाम मूल्य
"अस्वीकार कर दिया"एक त्रुटि वस्तु

आप प्रॉमिस प्रॉपर्टी की स्थिति और परिणाम तक नहीं पहुंच सकते ।

वादों को संभालने के लिए आपको एक वादा पद्धति का उपयोग करना चाहिए।


वादा कैसे करें

यहाँ एक वादे का उपयोग करने का तरीका बताया गया है:

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);}
);


जावास्क्रिप्ट वादा उदाहरण

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

  • एक टाइमआउट की प्रतीक्षा में
  • फ़ाइल की प्रतीक्षा में

एक टाइमआउट की प्रतीक्षा में

कॉलबैक का उपयोग करने का उदाहरण

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);

वादा का उपयोग कर उदाहरण

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);}
);


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

ईसीएमएस्क्रिप्ट 2015, जिसे ईएस6 के नाम से भी जाना जाता है, ने जावास्क्रिप्ट प्रॉमिस ऑब्जेक्ट पेश किया।

निम्न तालिका वादा वस्तुओं के लिए पूर्ण समर्थन के साथ पहले ब्राउज़र संस्करण को परिभाषित करती है:

Chrome 33 Edge 12 Firefox 29 Safari 7.1 Opera 20
Feb, 2014 Jul, 2015 Apr, 2014 Sep, 2014 Mar, 2014