Node.js opera en una arquitectura basada en eventos de un solo subproceso, lo que significa que puede manejar muchas operaciones simultáneamente sin bloquear el subproceso principal. Esto es crucial para crear aplicaciones escalables donde tareas como operaciones de E/S (lectura de archivos, consulta de bases de datos, etc.) deben realizarse de forma asincrónica para evitar bloquear la ejecución de otro código.
El código sincrónico se ejecuta un paso a la vez, lo que significa que cada paso debe completarse antes de pasar al siguiente. Esto puede bloquear el hilo principal si las operaciones son lentas (por ejemplo, leer un archivo grande o consultar una base de datos).
Ejemplo (Código síncrono):
const fs = require('fs'); const data = fs.readFileSync('file.txt', 'utf8'); console.log(data);
El código asincrónico, por otro lado, no bloquea el hilo principal. En lugar de esperar a que se complete una operación, el programa continúa ejecutándose y maneja el resultado de la operación asíncrona cuando está listo.
Ejemplo (Código asincrónico):
const fs = require('fs'); // Call Back fs.readFile('file.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); }); console.log('This will log before the file content!');
Asíncrono/Espera
Introducido en ES2017 (Node.js 7.6), async/await es azúcar sintáctico construido sobre promesas. Permite escribir código asincrónico de forma síncrona, lo que lo hace más legible y fácil de mantener.
Ejemplo (Async/Await):
const fs = require('fs').promises; async function readFile() { try { const data = await fs.readFile('file.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
La elección del código asíncrono o de sincronización depende de su caso de uso. Para operaciones con mucha E/S, prefiera siempre los patrones asincrónicos para mantener el hilo principal sin bloqueo y su aplicación con capacidad de respuesta.
¡Gracias por leer y feliz codificación! ?
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