完成所有异步任务后退出NodeJS脚本

fra*_*ack 8 javascript asynchronous node.js firebase

我正在使用带有NodeJS的firebase执行一些异步过程.

我想在完成NodeJS流程执行的所有任务时停止,而不需要Ctrl + C命令.

我试图退出该进程,但它在所有执行完成之前运行.

如何运行所有异步任务然后退出脚本?

Len*_*olm 11

首先,所有异步进程都应该是promises,然后将所有这些promise包含在单个promise中,Promise.all并在该promise解析时退出.像这样:

Promise.all([

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

]).then(process.exit);
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样的其他人来说,还没有考虑 100% 异步.. 在这提示我之前,我犯了一个愚蠢的错误。 then() 需要一个函数 (process.exit) 而不是一个值 (process.exit(0)) 。后者将在节点破坏您的承诺创建后立即运行并以极端偏见退出。 (2认同)