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() का 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() 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 में 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 करता है |