DanLevy.net

क्विज़: 9 जावास्क्रिप्ट प्रॉमिस प्रश्न

वादा फिर कभी न छोड़ें!

Hero image for क्विज़: 9 जावास्क्रिप्ट प्रॉमिस प्रश्न

क्या आप JavaScript प्रॉमिसेज़ को जानते हैं?

  1. हिंट देखें (बड़ा बटन, नीचे कोने में)।
  2. कोड को अपने ब्राउज़र के कंसोल में चलाएँ (शॉर्टकट F12 या खोजें) या repl.it* का उपयोग करें।
  3. बेझिझक मुझे @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 से जुड़े होते हैं, जो पेंडिंग रहता है, जबकि लौटाया गया अस्वीकृत प्रॉमिस होस्ट वातावरण द्वारा अप्रबंधित के रूप में रिपोर्ट किया जाता है।

निम्नलिखित कोड का आउटपुट क्या होगा?

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))

annotated-code/question-9-4.webp