function fails4() { return new Promise((resolve, reject) => { setTimeout(function () { reject(new Error()); }, 100); }); } async function myFunc4() { try { await fails4(); } catch (e) { console.log(e); console.log('that failed', e); //<-- this gets called } } async function loadmYScript() { try { await myFunc4(); } catch (error) { console.log(error); console.log(123); } } loadmYScript();no puedo ejecutar el archivo console.log (123) como esperaba, ¿alguien puede ayudarme con esta pregunta?
Está llamando a loadmYScript, que a su vez llama a myFunc4, que a su vez llama a fails4. Este último (fails4) arroja un error. El error es "atrapado" por myFunc4. Dentro de este bloque catch no arroja ningún error, solo hay un par de registros, por lo que el resultado de loadmYScript es una promesa cumplida con un valor indefinido. No se rechaza porque myFunc4 no arroja el error.
Si arroja un error dentro del bloque catch de myFunc4, tendrá su 123 registrado y la promesa será rechazada.