SkillByAIइंटरैक्टिव संस्करण खोलें →

पाठ 33 / 40

प्रॉमिस

Promises से भविष्य के values दर्शाएँ, then व catch chain करें और pending, fulfilled व rejected समझें।

बनाना और उपयोग करना

resolve प्रॉमिस को पूरा करता है, reject उसे विफल करता है; .then() और .catch() हर नतीजे पर प्रतिक्रिया देते हैं।

const promise = new Promise((resolve, reject) => {
  setTimeout(() => resolve("Done!"), 1000);
});
promise.then((result) => console.log(result))
       .catch((err) => console.log(err));

तीन अवस्थाएँ

एक Promise पहले pending होता है, फिर fulfilled या rejected के रूप में settle होता है — settle होने के बाद उसकी अवस्था फिर कभी नहीं बदलती।

चेनिंग

हर .then() एक नया प्रॉमिस लौटाता है, इसलिए असिंक्रोनस चरणों को एक सपाट, पठनीय क्रम में जोड़ा जा सकता है।

fetchUser()
  .then((user) => fetchPosts(user.id))
  .then((posts) => console.log(posts))
  .catch((err) => console.error(err));

त्वरित जाँच: Promise चेन में .catch() क्या संभालता है?

  • चेन में पहले कहीं भी हुई कोई rejection
  • केवल नेटवर्क त्रुटियाँ
  • कुछ नहीं — यह केवल logging के लिए है
  • केवल synchronous errors
Answer

चेन में पहले कहीं भी हुई कोई rejection — पहले किसी भी .then() में हुई rejection बाकी .then() कॉल को छोड़कर सीधे नज़दीकी .catch() पर पहुँच जाती है।