├── README.md ├── app-blocking.js ├── app-non-blocking.js └── usuarios └── usuarios.js /README.md: -------------------------------------------------------------------------------- 1 | # node-blocking-vs-non-blocking 2 | Un pequeño demo para explicar la diferencia 3 | 4 | Esto es parte de mi curso de Node: de cero a experto que puedes encontrar aquí 5 | 6 | [Node: de cero a experto](https://fernando-herrera.com/#/curso/node-cero-experto) 7 | -------------------------------------------------------------------------------- /app-blocking.js: -------------------------------------------------------------------------------- 1 | const { getUsuarioSync } = require('./usuarios/usuarios'); 2 | 3 | console.log('Inicio de programa'); 4 | console.time('inicio'); 5 | 6 | 7 | const usuario1 = getUsuarioSync( 1 ); 8 | console.log('Usuario 1:', usuario1 ); 9 | 10 | 11 | const usuario2 = getUsuarioSync( 2 ); 12 | console.log('Usuario 2:', usuario2 ); 13 | 14 | 15 | 16 | console.log('Fin de programa'); 17 | console.timeEnd('inicio'); -------------------------------------------------------------------------------- /app-non-blocking.js: -------------------------------------------------------------------------------- 1 | const { getUsuario } = require('./usuarios/usuarios'); 2 | 3 | console.log('Inicio de programa'); 4 | console.time('inicio'); 5 | 6 | 7 | getUsuario( 1, ( usuario ) => { 8 | console.log('Usuario 1:', usuario ); 9 | }); 10 | 11 | 12 | getUsuario( 2, ( usuario) => { 13 | console.log('Usuario 2:', usuario ); 14 | console.timeEnd('inicio'); 15 | }); 16 | 17 | 18 | console.log('Fin de programa'); -------------------------------------------------------------------------------- /usuarios/usuarios.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const getUsuarioSync = ( id ) => { 4 | const startPoint = new Date().getTime(); 5 | while (new Date().getTime() - startPoint <= 3000 ) { 6 | // Esperando... 7 | // Haciendo fetch de base de datos... 8 | // Robando datos de facebook... 9 | } 10 | 11 | return { 12 | id, 13 | nombre: `Usuario ${ id }` 14 | }; 15 | } 16 | 17 | 18 | const getUsuario = (id, callback ) => { 19 | const usuario = { 20 | id, 21 | nombre: `Usuario ${ id }` 22 | }; 23 | 24 | setTimeout(() => { 25 | callback( usuario ); 26 | }, 3000); 27 | } 28 | 29 | module.exports = { 30 | getUsuario, 31 | getUsuarioSync 32 | } --------------------------------------------------------------------------------