Javascript Promise All in Hindi Tutorial

Promise All in Javascript Hindi

promise.all promise object का एक method है | ये भी एक object की तरह काम करता है |

जब javascript code में एक जैसी एक से अधिक promises होतें हैं तो सबके लिए अलग अलग code लिखने की वजाए promise.all method के जरिये उसे handle कर सकतें हैं | यानी सारे promises के लिए एक consuming code बना सकतें हैं |

promise.all() में ली गयी promises जब सारे resolved हो जातें हैं, तब जाके then() function call होता है |

और अगर एक भी promise reject हुआ, तब catch() function call होता है |

promise all graph

promise.all() का Syntax:

promise.all(iterable); //iterable array of promises को represent करता है 

Sample Example

let promise1 = new Promise(function(resolve,reject){
                            console.log("call first promise");
                            resolve("1st promise called");
                          });
let promise2 = new Promise(function(resolve,reject){
                            console.log("call second promise");
                            resolve("2nd promise called");
                          });
promise.all([promise1, promise2]).then().catch();

उदाहरण

<!DOCTYPE html>
<html>
 <head>
    <title>javascript promise all example</title>
 </head>   
<body>   
 <script>
  let promise1 = new Promise((resolve, reject)=>{
     setTimeout(()=>{
      console.log("first promise get resolved");
      resolve("value1");
     },1*1000)
  }); 
  let promise2 = new Promise((resolve, reject)=>{
     setTimeout(()=>{
      console.log("second promise get resolved");
      resolve("value2");
     },2*1000)
  });  
  Promise.all([promise1,promise2]).then((result)=>{
    console.log(`get result: ${result}`);
  }).catch((error)=>{
    console.log(`error is: ${error}`);
  });
 </script>
</body>
</html>

output

promise all example

उदाहरण में हमने promise.all() method में दो promises pass कीया है, दोनों promises resolve हुए हैं | इसीलिए success message आया है |

अगर कोई एक promise reject हो जाता तो reject block execute होता |

उदाहरण

<!DOCTYPE html>
<html>
 <head>
    <title>javascript promise object methods </title>
 </head>   
<body>   
 <script>
     let promise1 = new Promise((resolve, reject)=>{
        setTimeout(()=>{
           resolve("value1");
         },1*1000)
      });
     let promise2 = new Promise((resolve, reject)=>{
         setTimeout(()=>{
            reject(new Error("error"));
          },2*1000)
      }); 
     let promise3 = new Promise((resolve, reject)=>{
         setTimeout(()=>{
            resolve("value3");
          },3*1000)
      });
   let prmall = Promise.all([promise1,promise2,promise3])
                               .then((value)=>{console.log(value)})
                               .catch((error)=>{console.log(error)})
 </script>
</body>
</html>

उदाहरण में देखिये हमने 3 promises लिया है और इसमें 2nd promise reject हो गया है | अन्य 2 promises resolve हुए पर promise.all सिर्फ error message return करेगा |

output

promise all reject example

promise.all में pass किये गए सभी promises जब resolve हो जातें तभी ये सबके result को एक array बना कर return करता है |

और अगर एक भी promise reject हुआ तब ये सिर्फ उस promise का error return करता है | पर बाकी resolved हुए promises का result नहीं बताता है |

promise object के अन्य methods

promise.all की तरह promise object के अन्य methods भी हैं जिसे हम आगे जानेगें |

promise.allSettled

promise.allSettled भी promise object का एक method है | promise.all method की तरह इसमें भी एक से अधिक promises को एक array की तरह pass कर सकतें हैं |

promise.all() method में जब एक भी promise reject हो जाता है तब वो सिर्फ error return करता है और बाकि resolved promises का output नहीं बताता है |

पर promise.allSettled() method सारे promises का result बताता है चाहे उसमे से कुछ promise reject हुआ हो या कुछ promise resolve हुआ हो |

promise.allSettled() method सारे promises settled होने तक wait करता है और सभी का detail result एक array object के जरिये return करता है |

उदाहरण

<!DOCTYPE html>
<html>
 <head>
    <title>javascript promise object methods </title>
 </head>   
<body>   
 <script>
     let promise1 = new Promise((resolve, reject)=>{
        setTimeout(()=>{
           resolve("value1");
         },1*1000)
      });
     let promise2 = new Promise((resolve, reject)=>{
         setTimeout(()=>{
            reject(new Error("error"));
          },2*1000)
      }); 
     let promise3 = new Promise((resolve, reject)=>{
         setTimeout(()=>{
            resolve("value3");
          },3*1000)
      });
   let prmall = Promise.allSettled([promise1,promise2,promise3])
                               .then((value)=>{console.log(value)})
                               .catch((error)=>{console.log(error)})
 </script>
</body>
</html>

output

उदाहरण में देखिये 3 promises में से एक reject हुआ है और 2 resolve हुआ है | promise.allSettled() method सभी के result, status के साथ array object के जरिये return किया है |

promise.race

promise.race सारे promises complete होने का wait नहीं करता है | जैसे ही कोई भी promise complete होता है, तब ये execute होता है और उस एक promise का सिर्फ output return करता है |

जो भी promise चाहे वो resolve हुआ हो या reject हुआ हो पर पहले complete हुआ है, तो उसीका result promise.race() method return करता है |

promise.any

promise.any भी promise.race की तरह काम करता है | ये भी उस promise का wait करता है जो पहले complete हुआ हो |

पर वो देखता है की वो promise resolve हुआ है या नहीं | वो उसी पहले promise का result बताता है जो resolve हुआ हो |

promise.any में pass किये गए सभी promises अगर reject हो जाये, तो ये promise.any() method एक aggregate error throw करता है |

अन्य javascript tutorial