Exit from a NodeJS script when all asynchronous tasks are done

asynchronous, firebase, javascript, node.js

Solution

First, all your asynchronous processes should be promises, then you wrap all of these promises in a single promise with `Promise.all` and exit when that promise resolves. Like this:

Promise.all([

 promiseForAsynchronousProcess1,
 promiseForAsynchronousProcess2,
 promiseForAsynchronousProcess3,
 ... and so on...

]).then(process.exit);

Problem

I'm executing some asynchronous process with firebase with NodeJS. I'd like to stop when finish all tasks the NodeJS process execution without the need of Ctrl+C command. I tried to exit from the process, but it runs before all execution are done. How can I do to run all asynchronous tasks and then exit from the script?

Original source