KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a node application that is not a web application - it completes a series of asynchronous tasks before returning 1. Immediately before returning, the results of the program are printed to the console. How do I make sure all the asynchronous work is completed before returning? I was able to achieve something similar to this in a web application by making sure all tasks we completed before calling res.end(), but I haven't any equivalent for a final 'event' to call before letting a script return. See below for my (broken) function currently, attempting to wait until callStack is empty. I just discovered that this is a kind of nonsensical approach because node waits for processHub to complete before entering any of the asynchronous functions called in processObjWithRef. function processHub(hubFileContents){ var callStack = []; var myNewObj = {}; processObjWithRef(samplePayload, myNewObj, callStack); while(callStack.length>0){ //do nothing } return 1 } Note: I have tried many times previously to achieve this kind of behavior with libraries like async (see my related question at How can I make this call to request in nodejs synchronous? ) so please take the answer and comments there into account before suggesting any answers based on 'just use asynch'.
Tags (comma-separated)
Save Edits
Cancel