Hola, actualmente estoy ejecutando una función secundaria de un padre. Sin embargo, si sucede algo en particular, quiero que la función secundaria detenga el resto de la función principal para que deje de ejecutarse.
¿Cómo hago esto sin usar una devolución?
La función hijo es un módulo.
Principal.js
console.log("Beginning") const func_import = require("/module.js") func_import() console.log("not to be executed in certain cases")módulo.js
module.exports = async() => { console.log("something") }Traté de usar un valor de retorno simple. Sin embargo, esto solo devolvió un valor indefinido incluso después de que usé await
Es posible, pero muy, muy extraño. Puedes arrojar un error en el niño:
module.exports = () => { if (condition) { throw new Error(); } }Esto hará que el padre (y cada uno de sus padres) deje de ejecutarse en el punto de la función:
console.log("Beginning") const func_import = require("/module.js") func_import() // <-- stops here console.log("not to be executed in certain cases")No hagas esto. Los errores deben usarse en circunstancias excepcionales (por algo se llaman "excepciones"), no para un simple flujo de control. Devuelva un valor en su lugar.
module.exports = () => { // other code return condition; } console.log("Beginning") const func_import = require("/module.js") const condition = func_import(); if (!condition) { console.log("not to be executed in certain cases") }