Si encontramos una queja, si tenemos un fallo, jaja, ahí vamos. Simplemente irá a la raíz del error listener. Nuestro código no sabrá qué hacer con eso. Dato curioso. Esto es muy similar al estilo de ventana emergente en muchas herramientas de desarrollo modernas donde obtienes esto, creo que informado por webpack, pequeña queja.
Ahora, la forma de hacer esto que podrías tener en un principio sería envolver todo en un bloque try-catch, lo cual es totalmente razonable. Oh, no, error. Y tal vez también running false allí. Lo cual solucionaría el error si actualizamos, hacemos clic un par de veces y finalmente obtenemos la queja. Vamos, aleatorización. Me estás matando aquí. Vamos. Oh, cielos. Bueno, genial. Parece que nunca se rompió. Apuesto a que si revisamos la consola, sí, tenemos algunos oh, no. Pero esto aún podría ser un problema porque ¿qué sucede si haces algo peligroso en tu bloque catch, que accidentalmente tiene un error, jaja? Y luego lo ejecutas nuevamente, y nuevamente te encuentras en el caso en el que, a pesar de try-catch, aún tienes una excepción potencial en tu código. Entonces, la única forma real de hacer esto de manera segura es crear algún tipo de controlador unificado para tus funciones asíncronas. Recomiendo encarecidamente que, si tu aplicación debe ser sólidamente segura y no se bloquee, incluso para los usuarios que exploran casos extremos, si realmente te importa que tus usuarios no experimenten bloqueos, haz alguna función como esta función runSafely, que recibe una acción, una función que crea una promesa, y un on error síncrono, luego llama a action.catch on error, para que puedas crear onClicks o otros controladores de eventos que sean un run safely de tu código asíncrono y luego algo que maneje el error. En este caso, solo para fines de demostración, he configurado un estado de error, que se muestra al usuario en un span con ARIA live assertive. Entonces, ahora, si vamos a nuestra demostración y hacemos clic, esto puede fallar de manera segura. Si falla, aún obtenemos el gotcha, y luego el botón vuelve a estar habilitado, incluso si el código tuvo un fallo. ¡Increíble! Esas son tres reglas fantásticas de ESLint del complemento TypeScript ESLint que recomiendo encarecidamente habilitar. Y eso es todo lo que quería mostrarte en la demostración. Para obtener más recursos, ESLint.org es fantástico, acaban de hacer una gran revisión del sitio con una excelente reescritura de la documentación y una nueva interfaz de usuario encantadora. Tuvimos un rediseño de sitio un poco menos impresionante en TypeScript. Y si quieres ver la aplicación de demostración, nuevamente, está enlazada en el lateral, demo de TypeScript ESLint React. Si quieres apoyarme en mi trabajo para mejorar todo esto para ti, puedes comprar mi libro Aprendiendo Typescript. Y por favor, patrocíname en GitHub, github.com/.sponsors/.JoshuaKGoldberg. Y si quieres apoyarnos como equipo detrás de TypeScript ESLint, tenemos un colectivo abierto, opencollective.com/.typescripteslint. Realmente necesitamos tu apoyo porque estamos muy subfinanciados y tenemos muy poco personal en este momento, y tenemos muchas características, problemas de performance y errores que nos gustaría abordar este próximo año. Dicho esto, muchas gracias por ver. Gracias a los organizadores de la conferencia por organizar todo esto. Puedes encontrarme en Twitter, Joshua K. Goldberg, y espero que disfrutes del resto de la conferencia. Adiós.
Comments