"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > एक Async फ़ंक्शन से किसी अन्य Async फ़ंक्शन के भीतर एक हल किया गया मान कैसे लौटाएं?

एक Async फ़ंक्शन से किसी अन्य Async फ़ंक्शन के भीतर एक हल किया गया मान कैसे लौटाएं?

2024-11-06 को प्रकाशित
ब्राउज़ करें:115

How to Return a Resolved Value from an Async Function Within Another Async Function?

async फ़ंक्शन से मान कैसे वापस करें?

प्रदान किए गए कोड में, init() विधि एक वादा लौटाती है, लेकिन getPostById() विधि सीधे प्रॉमिस द्वारा लौटाए गए मान तक पहुंचने का प्रयास कर रही है। इसे हल करने के लिए, वादा हल होने के बाद getPostById() का मान वापस करने के लिए init() विधि को संशोधित करने की आवश्यकता है।

यहां अद्यतन कोड है:

class Posts {
  constructor(url) {
    this.ready = false
    this.data = {}
    this.url = url
  }
  async init() {
      try { 
        let res = await fetch( this.url )
        if (res.ok) {
            let data = await res.json()

          // Do bunch of transformation stuff here

          this.data = data
          this.ready = true
          return this.getPostById(4)  // Return the value of getPostById()
        }
      } 
      catch (e) { 
         console.log(e)
      }
  }
  getPostById(id){
     return this.data.find( p => p.id === id )
  }
}  

अब, myFunc फ़ंक्शन को इस प्रकार लिखा जा सकता है:

let myFunc = async () => {
   const postId = 4
   await allPosts.init()  // I need to wait for this to finish before returning

   // This is logging correct value
   console.log( 'logging: '   JSON.stringify(allPosts.getPostById( postId ), null, 4) )

   // Return the RESULT of allPosts.getPostById( postId ) ???
   return await allPosts.getPostById( postId )
}

यह कोड getPostById() का मान सही ढंग से लौटाएगा।

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729216637 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3