जब कोई प्रॉमिस सेटल होता है, यानी या तो फुलफिल्ड या रिजेक्टेड, तो finally मेथड में निर्दिष्ट कॉलबैक फ़ंक्शन इनवोक होता है। finally() मेथड एक प्रॉमिस भी लौटाता है।
यह कोड के लिए एक तरीका प्रदान करता है कि प्रॉमिस सफलतापूर्वक फुलफिल्ड हुई या रिजेक्टेड, एक बार प्रॉमिस डील हो जाने के बाद चलाया जाए। आइए एक उदाहरण देखें:
उदाहरण
new Promise( (resolve) => setTimeout(resolve("success"), 1000) ).then(val => console.log(val)).finally(() => console.log("Promise complete!"))
आउटपुट
success Promise complete!
अब देखते हैं कि क्या होता है यदि कोई प्रॉमिस विफल होती है:
उदाहरण
// undefined पर कोई get मेथड नहीं। यह एरर फेंकेगा new Promise(() => undefined.get()) .then(val => console.log(val)) .catch(err => console.log("Failed!")) .finally(() => console.log("Promise complete!"))
आउटपुट
Failed! Promise complete!
ध्यान दें कि दोनों मामलों में चाहे विफल या सफल, प्रॉमिस ने finally स्टेटमेंट एक्ज़िक्यूट किया।