Node.js में वादा

Mar 24 2023
Node.js एक लोकप्रिय रनटाइम वातावरण है जो डेवलपर्स को स्केलेबल और कुशल एप्लिकेशन बनाने की अनुमति देता है।

Node.js एक लोकप्रिय रनटाइम वातावरण है जो डेवलपर्स को स्केलेबल और कुशल एप्लिकेशन बनाने की अनुमति देता है। Node.js की मुख्य विशेषताओं में से एक इसकी एसिंक्रोनस कोड को संभालने की क्षमता है, जो उच्च-प्रदर्शन अनुप्रयोगों के निर्माण के लिए आवश्यक है। अतुल्यकालिक कोड प्रबंधन के लिए चुनौतीपूर्ण हो सकता है, खासकर जब जटिल संचालन या लंबे समय तक चलने वाले कार्यों से निपटना हो। यहीं पर वादे आते हैं, जो Node.js में अतुल्यकालिक संचालन को संभालने का एक सरल और प्रभावी तरीका प्रदान करते हैं।

इस लेख में, हम Node.js में वादों की अवधारणा का पता लगाएंगे और आधुनिक अनुप्रयोगों के निर्माण के लिए वे क्यों महत्वपूर्ण हैं।

एक वादा क्या है?

सरल शब्दों में, वादा एक वस्तु है जो एक मूल्य का प्रतिनिधित्व करता है जो अभी तक उपलब्ध नहीं हो सकता है। वादे का उपयोग जावास्क्रिप्ट में अतुल्यकालिक संचालन को संभालने के लिए किया जाता है, जैसे कि नेटवर्क अनुरोध करना या डिस्क से फाइल पढ़ना।

एक वचन की तीन अवस्थाएँ होती हैं:

  • लंबित: एक वादे की प्रारंभिक स्थिति, यह दर्शाता है कि मूल्य अभी तक उपलब्ध नहीं है।
  • पूरा हुआ: एक वादे की स्थिति जब ऑपरेशन सफल होता है, और मूल्य उपलब्ध होता है।
  • अस्वीकृत: एक वादे की स्थिति जब ऑपरेशन विफल हो गया, और एक त्रुटि हुई।

Node.js में एक वादा बनाना

Node.js में वादा करना सीधा है। हम एक नया वादा बनाने के लिए प्रॉमिस कंस्ट्रक्टर का उपयोग करते हैं और एसिंक्रोनस ऑपरेशन करने वाले फ़ंक्शन को पास करते हैं। फ़ंक्शन दो तर्क लेता है, समाधान और अस्वीकार करता है, जो इंगित करता है कि ऑपरेशन सफल था या नहीं।

यहां एक उदाहरण दिया गया है जो एक ऐसा वादा बनाता है जो एक सेकंड की देरी के बाद हल होता है:

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Operation successful!');
  }, 1000);
});

वादा परिणामों को संभालना

एक बार वादा बन जाने के बाद, हम परिणामों को संभालने के लिए तत्कालीन पद्धति का उपयोग कर सकते हैं। तत्कालीन विधि दो कार्यों को तर्क के रूप में लेती है, एक सफल संचालन को संभालने के लिए और एक त्रुटि को संभालने के लिए।

यहां एक उदाहरण दिया गया है जो परिणाम को कंसोल में लॉग करने के लिए ऊपर बनाए गए वादे का उपयोग करता है:

myPromise.then((result) => {
  console.log(result);
}).catch((error) => {
  console.error(error);
});

चेनिंग वादे

वादों की शक्तिशाली विशेषताओं में से एक उन्हें एक साथ जोड़ने की क्षमता है। यह हमें नेस्टिंग कॉलबैक के बिना एक क्रम में अतुल्यकालिक संचालन की एक श्रृंखला करने की अनुमति देता है।

यहाँ एक उदाहरण दिया गया है जो दो वादों को एक साथ जोड़ता है:

const getUser = (id) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const user = { id, name: 'John Doe' };
      resolve(user);
    }, 1000);
  });
};

const getPosts = (user) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const posts = [{ id: 1, title: 'Post 1' }, { id: 2, title: 'Post 2' }];
      resolve({ user, posts });
    }, 1000);
  });
};

getUser(1)
  .then(getPosts)
  .then((result) => {
    console.log(result);
  })
  .catch((error) => {
    console.error(error);
  });

#nodejs #javascript #blockchain #promise #fullstackdeveloper