este es el codigo
const setError = ""; function validate() { return new Promise((resolve, reject) => { const exp = RegExp("w+@example.com").test("sfsdf@gmail.com"); console.log(exp); if (!exp) { setError = "Email Not Valid!"; } console.log("The value is" + setError); if (setError != "") { reject(); } else { resolve(); } }); } validate() .then(() => { console.log("Resolved"); }) .catch(() => { console.log("Rejected"); });Cuando lo ejecuto, obtengo el siguiente resultado,
false Rejected¿Por qué no se ejecuta el segundo archivo console.log dentro de la función de validación?
setError no debería ser una constante, cuando intenta cambiar su valor arroja un error y rechaza la Promesa.
let setError = "";Debido a que está asignando a const setError , provoca un error de tiempo de ejecución y detiene la ejecución de la función.
const no se puede reasignar después de la inicialización. Hacer let se solucione el problema.
let setError = ""; function validate() { return new Promise((resolve, reject) => { const exp = RegExp("w+@example.com").test("sfsdf@gmail.com"); console.log(exp); if (!exp) { setError = "Email Not Valid!"; } console.log("The value is" + setError); if (setError != "") { reject(); } else { resolve(); } }); } validate() .then(() => { console.log("Resolved"); }) .catch(() => { console.log("Rejected"); });