La programación asincrónica es una de las principales fortalezas de JavaScript, especialmente en Node.js; sin embargo, debido a la necesaria separación de preocupaciones, a menudo se realizan múltiples operaciones asincrónicas mediante devoluciones de llamadas, y esto puede conducir a lo que se conoce como "infierno de devoluciones de llamadas". Por ejemplo, considere una situación en la que estamos trabajando con devoluciones de llamadas anidadas en nuestro código JavaScript y veamos cómo podemos refactorizarlo usando Promises y la estructura async/await.
Comencemos con un código que utiliza devoluciones de llamada para manejar operaciones de archivos para un sistema de gestión de productos simple:
Aquí tenemos varias llamadas retroactivas bien anidadas para leer y escribir en un archivo. Este es probablemente uno de los casos en los que escribirías cuando te encuentres en lo más profundo del infierno de las devoluciones de llamadas. Finalmente, con una mayor cantidad de operaciones asincrónicas, el código crecerá al igual que la cantidad de sangría, lo que hará que sea más difícil de leer. En el método save(), la función fs.readFile lee el archivo y luego su devolución de llamada analiza el contenido y utiliza una función fs.writeFile para reescribir el contenido del archivo, lo cual se realiza en otra devolución de llamada. Estos niveles de anidamiento hacen que el código se parezca a lo que se conoce como una "pirámide de la perdición".
Para evitar este infierno de devolución de llamadas, existen promesas de JavaScript y la sintaxis async/await que hace que el código sea mucho más legible, manejable y fácil de depurar.
Aquí está la versión mejorada:
Las promesas son útiles al permitir la gestión de operaciones asincrónicas de forma lineal y con el menor número de estructuras anidadas. El patrón async/await mejora la legibilidad del código y también aborda las operaciones asincrónicas de una manera que se parece más a las operaciones sincrónicas. Al utilizar bloques try y catch específicamente, el procesamiento de errores se vuelve más transparente y más fácil de entender, lo que contribuye a la mantenibilidad del código.
El infierno de devolución de llamadas puede ser el verdadero problema al escribir el código de manera limpia y funcional en JavaScript, particularmente en Node.js. Con la ayuda de Promises y async/await, es posible convertir el infierno de devoluciones de llamadas fuertemente anidadas en un código lineal limpio y al mismo tiempo facilitar el manejo de errores. No solo transforma tu código para que se vea mucho mejor, sino que también te coloca en el camino correcto para convertirte en un mejor programador de JavaScript.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3