JavaScript Promise

"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 ਦਾ ਇਸਤੇਮਾਲ ਕਰਨਾ ਹੈ

ਪ੍ਰਮਿਸ ਦੇ ਉਪਯੋਗ ਦੀ ਵਿਧੀ ਇਹ ਹੈ:}}

});
  function(value) { /* code if successful */ },
  function(error) { /* code if some 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");
  else {
    myReject("Error");
  myReject("File not Found");
req.send();
});
  myPromise.then(
  function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}

);

JavaScript 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);
    else {
      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) {
      myResolve(req.response);
    else {
      }
    myReject("File not Found");
  }
  };
req.send();
});
  myPromise.then(
  function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}

);

ਸਵੈ ਕ੍ਰਿਆ ਕਰੋ

ਬਰਾਅਜਰ ਸਮਰਥਨ

ECMAScript 2015 ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ES6, JavaScript ਪਰਸਪੋਰ ਆਬਜੈਕਟ ਦਾ ਪ੍ਰਵੇਸ਼ ਕੀਤਾ ਹੈ。

ਹੇਠ ਦੇ ਸਾਰੀਆਂ ਤਾਲਿਕਾ ਵਿੱਚ ਪਰਸਪੋਰ ਆਬਜੈਕਟ ਦਾ ਪਹਿਲਾ ਪੂਰਨ ਸਮਰਥਨ ਕਰਨ ਵਾਲਾ ਬਰਾਅਜ਼ਰ ਸੰਸਕਰਣ ਦਿਸਾਈ ਹੈ: ਆਈਈ ਫਾਇਰਫਾਕਸ ਸਫਾਰੀ ਓਪੇਰਾ
ਚਰਾਮ 33 ਐਂਜਲ 12 ਫਾਇਰਫਾਕਸ 29 ਸਫਾਰੀ 7.1 ਓਪੇਰਾ 20
2014 ਫਰਵਰੀ 2015 ਜੁਲਾਈ 2014 ਅਪ੍ਰੈਲ 2014 ਸਤੰਬਰ 2014 ਮਾਰਚ