के साथ वादा करता है मैं मोंगोस वादे का उपयोग करने की लटक पाने की कोशिश कर रहा हूं, जो कि node.js. की एसिंक/प्रतीक्षा कार्यक्षमता के साथ वादे करता है। जब मेरा फ़ंक्शन printEmployees
कहा जाता है, तो मैं orderEmployees
फ़ंक्शन द्वारा पूछे जाने वाले कर्मचारियों की सूची को सहेजना चाहता हूं। orderEmployees
के अंदर console.log
कथन अपेक्षित क्वेरी देता है, console.log
printEmployees
के अंदर undefined
देता है, यह सुझाव देता है कि मैं सही तरीके से वादा वापस नहीं कर रहा हूं।mynoose का उपयोग async/await
मैं पूरी तरह से संभव वादे के लिए नया हूं कि मैं प्रतिमान को सही ढंग से समझ नहीं रहा हूं ... किसी भी मदद की बहुत सराहना की जाती है।
printEmployees: async(company) => {
var employees = await self.orderEmployees(company);
// SECOND CONSOLE.LOG
console.log(employees);
},
orderEmployees: (companyID) => {
User.find({company:companyID})
.exec()
.then((employees) => {
// FIRST CONSOLE.LOG
console.log(employees);
return employees;
})
.catch((err) => {
return 'error occured';
});
},
मैं नहीं देखता कि [स्पष्ट वादा निर्माण antipattern] (https://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid -it) त्रुटि प्रबंधन से मदद मिलेगी। क्या फायदा है आप बस एक साधारण async फ़ंक्शन से 'कर्मचारियों को वापस' और 'फेंक'' कर सकते हैं। –
@ टामास हेगेडस हाँ अच्छा बिंदु, पुरानी आदत उन समय से जहां नोड ने अंदरूनी वादों से फेंकने वाले अपवादों को संभाला नहीं था! – James