Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exit from a NodeJS script when all asynchronous tasks are done

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?

like image 876
frankfullstack Avatar asked May 09 '17 12:05

frankfullstack


1 Answers

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);
like image 145
Lennholm Avatar answered Nov 11 '22 11:11

Lennholm