मेरे पास एक नोड एप्लिकेशन है जो एक वेब अनुप्रयोग नहीं है - यह लौटने से पहले एसिंक्रोनस कार्यों की एक श्रृंखला को पूरा करता है 1. लौटने से पहले, प्रोग्राम के परिणाम कंसोल पर मुद्रित होते हैं।एक node.js फ़ंक्शन कैसे लिखें जो 'वापसी' से पहले किसी ईवेंट को आग लगने की प्रतीक्षा करता है?
मैं कैसे सुनिश्चित कर सकता हूं कि लौटने से पहले सभी एसिंक्रोनस काम पूरा हो जाए? मैं res.end() को कॉल करने से पहले पूरा किए गए सभी कार्यों को सुनिश्चित करके वेब एप्लिकेशन में ऐसा कुछ हासिल करने में सक्षम था, लेकिन मेरे पास स्क्रिप्ट रिटर्न देने से पहले कॉल करने के लिए अंतिम 'ईवेंट' के बराबर नहीं है।
वर्तमान में मेरे (टूटा हुआ) फ़ंक्शन के लिए नीचे देखें, कॉलस्टैक खाली होने तक प्रतीक्षा करने का प्रयास करें। मैंने अभी पाया है कि यह एक तरह का बकवास दृष्टिकोण है क्योंकि नोड प्रक्रिया के लिए इंतजार कर रहा है हब प्रोसेसऑबजविथरफ में नामक एसिंक्रोनस कार्यों में से किसी एक को दर्ज करने से पहले पूरा करने के लिए।
function processHub(hubFileContents){
var callStack = [];
var myNewObj = {};
processObjWithRef(samplePayload, myNewObj, callStack);
while(callStack.length>0){
//do nothing
}
return 1
}
नोट: मैं कई बार कोशिश की है कि पहले (How can I make this call to request in nodejs synchronous? पर अपने संबंधित सवाल देखें) तो कृपया जवाब और खाते में वहाँ टिप्पणियाँ 'के आधार पर कोई जवाब सुझाव से पहले ले async तरह पुस्तकालयों के साथ इस तरह का व्यवहार प्राप्त करने के लिए बस asynch का उपयोग करें।
"मैं कैसे सुनिश्चित कर सकता हूँ सब अतुल्यकालिक काम पूरा हो गया है ? " एक गैरकानूनी सवाल है - जब तक सभी एसिंक्रोनस कार्यों को पूरा नहीं किया जाता है तब तक नियंत्रण को कभी भी खोल में वापस नहीं किया जाता है, इसलिए आखिरी एसिंक्रोनस फ़ंक्शन पूरा होने तक कंसोल आउटपुट को छोड़कर मेरी समस्या ठीक हो जाती है। उत्तर सबमिट करने के लिए सभी को धन्यवाद। – Trindaz