जावास्क्रिप्ट में प्रोमिसेज में अपवाद स्थितियाँ
आइए अब सीखते हैं कि प्रोमिस के अंदर हुई अपवाद स्थितियों को कैसे संभाला जाता है। ऐसी स्थिति उत्पन्न होने पर हमें प्रोमिस को अस्वीकार करने वाले फ़ंक्शन की मदद से अस्वीकार करना होगा, जो स्वचालित रूप से प्रोमिस फ़ंक्शन के दूसरे पैरामीटर में आ जाता है:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
प्रोमिस फ़ंक्शन के अंदर हमें
resolve को कॉल करना चाहिए,
यदि सब कुछ सामान्य रूप से हुआ, या
reject को कॉल करना चाहिए, यदि कोई अपवाद
स्थिति उत्पन्न हुई है:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // प्रोमिस का डेटा
} else {
reject('error in promise'); // आपका एरर टेक्स्ट
}
}, 3000);
});
फिर then मेथड में आपको
एक नहीं, बल्कि दो फ़ंक्शन पैरामीटर के रूप में
पास करने होंगे: पहला तब काम करेगा,
जब प्रोमिस सामान्य रूप से काम करता है (resolved),
और दूसरा - यदि एरर के साथ काम करता है (rejected):
promise.then(
function(result) {
console.log(result); // प्रोमिस का रिजल्ट दिखाएगा
},
function(error) {
console.log(error); // एरर टेक्स्ट दिखाएगा
}
);
एक नियम के रूप में, ऊपर दिया गया कोड अधिक संक्षिप्त रूप में इस तरह लिखा जाता है:
promise.then(function(result) {
console.log(result); // प्रोमिस का रिजल्ट दिखाएगा
}, function(error) {
console.log(error); // एरर टेक्स्ट दिखाएगा
});
एक अतुल्यकालिक कोड बनाएं जो 0 से 5 तक
यादृच्छिक संख्याएं उत्पन्न करेगा।
इसे एक प्रोमिस में लपेटें। प्रोमिस अपने परिणाम के रूप में
एक को उत्पन्न संख्या से विभाजित करने का परिणाम वापस करेगा।
यदि शून्य से विभाजन हुआ है तो प्रोमिस को एरर के साथ
पूरा होने दें, और बाकी सभी मामलों में
सफलता के साथ पूरा होने दें।