क्विज़: 9 जावास्क्रिप्ट प्रॉमिस प्रश्न
वादा फिर कभी न छोड़ें!
क्या आप JavaScript प्रॉमिसेज़ को जानते हैं?
- अपनी JavaScript कौशल साबित करें! 🚀
- हिंट देखें (बड़ा बटन, नीचे कोने में)।
- कोड को अपने ब्राउज़र के कंसोल में चलाएँ (शॉर्टकट
F12या खोजें) या repl.it* का उपयोग करें। - बेझिझक मुझे @justsml पर ट्वीट करें. आपके विचार सुनकर खुशी होगी!
👇 नीचे 9 प्रश्न पूर्ण करें 👇
निम्नलिखित कोड का आउटपुट क्या होगा?
var p = new Promise((resolve, reject) => { reject(Error('The Fails!'))})p.catch(error => console.log(error.message))p.catch(error => console.log(error.message))हम कंस्ट्रक्टर मेथड का उपयोग करके एक Promise बनाते हैं, और reject कॉलबैक से तुरंत एक त्रुटि उत्पन्न करते हैं।
फिर .catch हैंडलर DOM के .addEventListener(event, callback) या Event Emitter के .on(event, callback) की तरह काम करते हैं जहाँ एकाधिक हैंडलर कॉलबैक जोड़े जा सकते हैं। प्रत्येक को समान आर्ग्युमेंट्स के साथ बुलाया जाएगा।
निम्नलिखित कोड का आउटपुट क्या होगा?
var p = new Promise((resolve, reject) => { return Promise.reject(Error('The Fails!'))})p.catch(error => console.log(error.message))p.catch(error => console.log(error.message))Promise कंस्ट्रक्टर का उपयोग करते समय आपको resolve() या reject() कॉलबैक में से किसी एक को कॉल करना आवश्यक है। Promise कंस्ट्रक्टर एक्जीक्यूटर के रिटर्न वैल्यू को अनदेखा करता है, इसलिए Promise.reject() से बनाया गया अतिरिक्त प्रॉमिस p से चेन नहीं होता। दो हैंडलर p से जुड़े होते हैं, जो पेंडिंग रहता है, जबकि लौटाया गया अस्वीकृत प्रॉमिस होस्ट वातावरण द्वारा अप्रबंधित के रूप में रिपोर्ट किया जाता है।
निम्नलिखित कोड का आउटपुट क्या होगा?
var p = new Promise((resolve, reject) => { reject(Error('The Fails!'))}).catch(error => console.log(error)).then(error => console.log(error))जब आप .then और .catch को चेन करते हैं तो उन्हें चरणों की श्रृंखला की तरह सोचना उपयोगी होता है। प्रत्येक .then को पिछले .then द्वारा लौटाया गया मान (अपने तर्क के रूप में) मिलता है। लेकिन यदि आपका “step” कोई त्रुटि प्राप्त करता है, तो सभी आगे के .then “steps” को छोड़ दिया जाएगा जब तक कि कोई .catch न मिल जाए। यदि आप त्रुटि को ओवरराइड करना चाहते हैं, तो बस एक गैर‑त्रुटि मान लौटाएँ। वह किसी भी आगे के .then में पहुँचाया जा सकता है।
निम्नलिखित कोड का आउटपुट क्या होगा?
var p = new Promise((resolve, reject) => { reject(Error('The Fails!'))}).catch(error => console.log(error.message)).catch(error => console.log(error.message))जब .catch को चेन किया जाता है, तो प्रत्येक केवल पिछले .then या .catch “स्टेप्स” में फेंकी गई त्रुटियों को संभालता है। इस उदाहरण में पहला .catch console.log लौटाता है जिसे केवल दोनों .catch के बाद एक .then() जोड़कर ही एक्सेस किया जा सकता है।
निम्नलिखित कोड का आउटपुट क्या होगा?
new Promise((resolve, reject) => { resolve('Success!') }) .then(() => { throw Error('Oh noes!') }) .catch(error => { return "actually, that worked" }) .catch(error => console.log(error.message))Hint: .catch’s का उपयोग त्रुटियों को अनदेखा (या ओवरराइड) करने के लिए किया जा सकता है, बस एक सामान्य मान लौटाकर।
यह ट्रिक तभी काम करती है जब बाद में एक .then हो जो उस मान को प्राप्त करे।
निम्नलिखित कोड का आउटपुट क्या होगा?
Promise.resolve('Success!') .then(data => { return data.toUpperCase() }) .then(data => { console.log(data) })Hint: .then डेटा को क्रमिक रूप से पास करता है, return value से अगले .then(value => /* handle value */) तक।
एक return अगली .then को मान पास करने के लिए महत्वपूर्ण है।
निम्नलिखित कोड का आउटपुट क्या होगा?
Promise.resolve('Success!') .then(data => { return data.toUpperCase() }) .then(data => { console.log(data) return data }) .then(console.log)यहाँ 2 console.log कॉल हैं जो चलेंगे।
निम्नलिखित कोड का आउटपुट क्या होगा?
Promise.resolve('Success!') .then(data => { data.toUpperCase() }) .then(data => { console.log(data) })Hint: .then डेटा को क्रमिक रूप से पास करते हैं, return value से अगले .then(value => /* handle value */) तक।
अगले .then को मान पास करने के लिए return महत्वपूर्ण है।
निम्नलिखित कोड का आउटपुट क्या होगा?
Promise.resolve('Success!') .then(() => { throw Error('Oh noes!') }) .catch(error => { return 'actually, that worked' }) .then(data => { throw Error('The fails!') }) .catch(error => console.log(error.message))