जावास्क्रिप्ट में प्रोमिस की अवस्थाएँ
एक प्रोमिस तीन अवस्थाओं में से किसी एक में हो सकता है। बनाते समय प्रोमिस लंबित (pending) अवस्था में होता है, और फिर यह पूर्ण (fulfilled) हो सकता है, प्राप्त परिणाम लौटाते हुए, या अस्वीकृत (rejected) हो सकता है, असफलता का कारण लौटाते हुए। आप निम्नलिखित कोड चलाकर एक अवस्था से दूसरी अवस्था में परिवर्तन देख सकते हैं:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // या तो true या false सेट करें
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('error in promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // हर सेकंड प्रोमिस को कंसोल में प्रिंट करें
}, 1000);
ध्यान रखें कि fulfilled और rejected अवस्थाएँ अपरिवर्तनीय हैं: यदि प्रोमिस इनमें से किसी एक अवस्था में चला गया है, तो वह दूसरी अवस्था में नहीं जा सकेगा। आइए एक उदाहरण से देखते हैं। निम्नलिखित कोड में reject कॉल पहले होगी, इसलिए resolve कॉल को नजरअंदाज कर दिया जाएगा:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('error')), 1000);
setTimeout(() => resolve('ignored'), 2000);
});
एक प्रोमिस बनाएं जो कुछ समय बाद सफलतापूर्वक पूरा हो जाए। इसे कंसोल में प्रिंट करें और इसकी प्रारंभिक अवस्था और पूर्ण अवस्था का अध्ययन करें।
एक प्रोमिस बनाएं जो कुछ समय बाद विफलता के साथ पूरा हो जाए। इसे कंसोल में प्रिंट करें और इसकी प्रारंभिक अवस्था और पूर्ण अवस्था का अध्ययन करें।