Trabajo en un IDE para Javascript que permite a los desarrolladores evaluar su código. En una consola Chrome moderna, puedo ejecutar:
eval(`try{function foo3(){console.log("Hi")}} catch(err){console.log(err)}`)y foo3 se definirá y llamará fine. También puedo ejecutar:
eval(`async function foo4(){console.log("Hi")}`)y foo4 se definirá y llamará fine. Pero cuando corro:
eval(`try{async function foo5(){console.log("Hi")}} catch(err) {console.log(err)}`)No recibo ningún error, pero foo5 no está definido. Tenga en cuenta que la diferencia entre el ejemplo 1 y el ejemplo 3 es simplemente "async" antes de "function". Me gustaría que se defina foo5. Pistas muy apreciadas.
Bueno, podría invertir su código ligeramente, para incluir el bloque try/catch , dentro de su función async para que funcione.
eval(`async function foo5() {try {console.log("Hi")} catch (err) { console.log(err)}}`); foo5();