Escribí un código que finaliza el proceso bajo ciertas condiciones, y cuando lo escribo como return , finaliza de manera anormal debido a un error de exceso de memoria , y process.exit() finaliza normalmente.
PD Mi código es solo una función. Entonces, el método dos abandonó la función uno.
¿Puede explicar la diferencia entre los dos métodos al finalizar el proceso?
if(condition === true) process.exit(); if(condition === true) return;return solo detendrá la función que contiene la declaración de retorno. process.exit detendrá todas las funciones en ejecución y detendrá todas las tareas.
Entonces, cuando llame a return, detendrá la función actual pero ejecutará las funciones restantes.
process.exit descarta por la fuerza algunas tareas asincrónicas pendientes.Llamar a process.exit() obligará al proceso a salir lo más rápido posible, incluso si todavía hay operaciones asincrónicas pendientes que aún no se han completado por completo, incluidas las operaciones de E/S para procesar.stdout y procesar.stderr.
-- https://nodejs.org/api/process.html#process_process_exit_code
process.exit() evita que se emita el evento beforeExit .El evento 'beforeExit' se emite cuando Node.js vacía su ciclo de eventos y no tiene trabajo adicional para programar. Normalmente, el proceso de Node.js se cerrará cuando no haya trabajo programado, pero un agente de escucha registrado en el evento 'beforeExit' puede realizar llamadas asincrónicas y, por lo tanto, hacer que el proceso de Node.js continúe.