Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
4H
49M
36S

Monohilo: implicaciones en dise帽o y seguridad

4/31
Recursos

Aportes 147

Preguntas 19

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Me encanta cuando les salen errores a los profesores. Refleja muy bien el flujo de trabajo real. Y aun que hay quienes critican a los profesores por esto, yo creo que es genial que no editen esas partes de la clase. Creo que a la gente que apenas inicia le va a servir mucho darse cuenta que el flujo de trabajo es de esa manera y les ayudar谩 a evitar sentirse frustrados y con sindreome de impostor. Ademas, sin querer aprendes como puedes resolver esos problemitas, como en ete caso con el

console.log('forzamos error');

para asegurarse de que el bloque del if se ejecuta.

Importante: Cuando ocurre un error dentro de alguno de los hilos y no se controla apropiadamente (catch); Node detiene todos los hilos ejecuci贸n. Esto puede ser muy peligroso, debido a que es dificil determinar fue el origen del problema y en que punto de ejecuci贸n se encontraba cada hilo cuando fue detenido.

RESUMEN :


El hecho de que sea monohilo lo hace delicado en el sentido de que puede ejecutarse algo que corte el c贸digo y detenga el programa, como la ausencia de sintaxis o una variable pendiente por definir.

Aqu铆 se pueden ver los problemas de seguridad y los Updates en este tema. Muy interesante leerlo para entender c贸mo atacan y saltan el c贸digo y c贸mo lo resolvieron.

A continuaci贸n dejo el c贸digo escrito con algunos comentarios de utilidad:

console.log('Hola mundo');

// SetInterval me permtie ejecutar una funci贸n cada n cantidad de tiempo, por lo que quiere que recibe como argumentos: Funci贸n a ejecutarse, intervalo de tiempo.
//A tener  en cuenta esta funci贸n no se detiene y contin煤a su ejecuci贸n ad infinitum.
// Detener ejecuci贸n con ctrl+ alt + m en Run Code, o con Ctrl +c en la terminal.
setInterval(function(){console.log('Voy a contar hasta infinito, det茅n mi ejecuci贸n o consumo tu memoria'),1000}); // Esta instrucci贸n es as铆ncrona, por lo que se ejecuta en n momento.


let i = 0;
setInterval(function() {
    console.log(i);
    i++;

// Al ser monohilo el peligro recae en que si el c贸digo se ejectua y no tenemos cuidado el no asignar una variable de manera correcta me puede arrojar un error.
//Hay que escuchar los errores, es muy imporante de todo lo que pase en el c贸digo. Comprobar funciones y revisar lo que posiblmente puede fallar.
//Es clave estar pendiente de todos los errores que pueda cortar la ejecuci贸n, lo que se corta corta todo.
// Todo lo que sea as铆ncono y lo pueda llevar a ello, pues llevarlo, y todo lo que no, revisar que no corte el programa.

    // if (i === 5) {
    //     console.log('forzamos error');
    //     var a = 3 + z;
    // }
}, 1000);


console.log('Segunda instrucci贸n');

MONOHILO

PROCESO DE NODE

    1.- Va a abrirse un proceso, ese proceso es un proceso de node
    2.- Interpreta todo el archivo
    3.- Convertirlo a c贸digo maquina
    4.- Prepara todo lo que necesita para ejecutarse
    5.- Se ejecuta
    6.- Se cierra el proceso, y termina

DESVENTAJAS MONOHILO

    - Si no se manejan bien los errores y uno truena, ya no continua con los procesos posteriores
    - Debes estar pendiente de todo el c贸digo

Segunda clase del curso, y aparte de los dos cursos que ya tome con Freedy, este maestro es el que siento yo, mejor explica y mejor da a entender las cosas 馃槃

Es algo interesante cuando los profesores cometen errores, dan a entender que no estan copiando y pegando codigo de otra parte, si no que ense帽an con sus propias lineas 馃槃

Si, y si pones un timeout de 0 seguir铆a ejecut谩ndose primero la 鈥渟egundo instrucci贸n鈥, porque hasta que no acabe el hilo principal no empiezan a ejecutarse las instrucciones que has enviado al event loop. Pero si explicara esto ya tendria que meterse a explicar otras cosas como las pilas de eventos etc

Si quieren evitar que un error les corte el programa pueden usar TRY CATCH de la siguiente manera:

let i = 0;
setInterval(function () {
    console.log(i++);
    try {
        if (i === 5) {
            var a = 3 + z;
        }
    } catch (error) {
        console.error(error)
    }
}, 1000)

Les dejo mis notas hechas con Notion de la clase ^^

A todos nos ha pasado m谩s de una vez que se nos olvida guardar y pensamos que fallo algo, para m铆 funciono el hecho de cambiar el shortcut de Save a teclas que fueran m谩s c贸modas. Para acceder a la lista de shotcuts donde pueden editar Ctrl + K + S.

var i = 0;
setTimeout( () => {
    console.log(i++);
},1000);

setTimeout solo se ejecuta en cierto tiempo a diferencia de SetInterval que se ejecuta cada cierto tiempo

En Node la ejecuci贸n de eventos es as铆ncrona, por lo que retornara los resultados apenas pueda hacerlo en cada evento. Es muy importante saber que si uno de estos eventos fallan, todo va a detenerse, por lo que hay que comprobar rigurosamente nuestro c贸digo ante los fallos que puedan suceder.

鈥淎hhhh鈥 es que no hab铆a guardado , muy bien Carlos鈥 , la de veces que me ha pasado eso 馃槃, lo consegu铆 solucionar activando el AUTOSAVE en VSCODE, 驴es esto una mala pr谩ctica? 驴puede afectar al flujo de trabajo con git, github, gitlab?

Y a mi por qu茅 me nombran? 馃槢

Como aporte, quisiera aclarar que el setInterval no se ejecuta de 煤ltimo porque dure 1000ms, podemos ponerlo en 0 y va a seguirse empezando a imprimir de 煤ltimo.
La raz贸n de que esto suceda es que el Event Loop no deja que nada as铆ncrono empiece siquiera a ejecutarse hasta que el CallStack, en donde est谩n todos los procesos s铆ncronos y 鈥渘ormales鈥, no se quede vac铆o.
Por eso, aunque le pongamos 0ms, el resultado va a ser el mismo si hay funciones o procesos s铆ncronos a la espera. Desde una funcion super compleja hasta un simple console.log()

El monohilo es como una cinta de producci贸n en un f谩brica de cajas, cada proceso es una caja bien hecha pero un error es una caja enorme鈥 mal hecha. Cuando la caja va a salir para su venta atasca el mecanismo ya que es muy grande. Por lo que las cajas que vienen detr谩s nunca llegan a 鈥渟alir鈥 (procesarse en el caso del c贸digo).

con la cara que dice que este pendiente de mis programas !!! se nota que lo dice desde la experiencia. Gracias!

Leyendo los comentarios hablan mucho de try/catch. Yo personalmente no los conozco aun. Espero aprenderlos durante esta clase.

-setInterval: EventLoop abierto y escuchando todo el tiempo

-Lo malo del Monohilo es que si no tienes cuidado cuando se ejecute un error se para por completo el proceso

ctrl + C = Parar el proceso.

let i = 0;

function Increment (seconds) {
    setInterval(() => {
        if(i === 1) {
            console.log(`Pas贸 ${i} segundo`)
        } else {
            console.log(`Pasaron ${i} segundos`);
        }
        i ++;
    }, seconds);
}

Increment(1000);

Ley de Murphy: Todo lo que puede salir mal, saldr谩 mal.

Muy importante haberlo entendido como programadores

Monohilo: implicaciones en dise帽o y seguridad

<console.log("Hello world!!");

let i = 0;

setInterval(function() {
  console.log(i);
  i++;

  if (i === 5) {
    console.log("forzamos error");
    var a = 3 + z;
  }
}, 1000);
>

Importante: debes estar pendiente en todo lo que ocurre en tu c贸digo.

En Monohilo, se debe estar pendiente de todo lo que pasa para que no se detenga todo el proceso. Qu茅 hacer? Desarrollo basado en pruebas?

Tremendo crack el profe, creo que este curso deber铆a estar o o si ya lo esta al inicio del curso de desarrollador web, ya que te ayuda a entender much铆simo mejor lo que pasa en js

Me alegra saber que no soy el 煤nico al que se le olvida guardar y luego no sabe por qu茅 el c贸digo no hace lo que se espera 馃槄

Me encanta como ense帽a este maestro, yo recomiendo repasar las clases del curso de asincronismo con JavaScript y el curso de JavaScript Engine (V8) y el Navegador

鈥淭odo lo que pueda fallar, antes de que falle: compru茅balo鈥!

//event loop

let count = 10;

//infinite loop con respuesta en 5 y respuesta en -5
setInterval(() => {
    let name = "platzi"
    let course = "curso de nodejs"
    console.log(count--)
    if(count === 5 || count === -5){
        console.log(`estoy aprendiendo en ${name} el ${course}`);
    }
}, 1000);```

Para parar un proceso, es realmente con la se帽al SIG_TERM que es el CTRL-C en la terminal o desde un monitor de procesos, como ps -fea, ver el PID y mandarle esa se帽al.

kill -15 $NODE_RUNNING_PROCESS

Una manera de asegurarte de que estas pasando todo correctamente y no tendr谩s esos errores en tiempo de ejecuci贸n, seria combinar Node con Typescript

Monohilo: implicaciones en dise帽o y seguridad


Para ejecutar un archivo con Node.js, tenemos que escribir en la terminal:

node file.js

鈿 Los archivos node-js su extensi贸n es .js

Lo malo de que Node.js sea monohilo, es que cuando tengas un error, Node va parar todo y dejar de ejecutarse.

Al ser monohilo, si se detecta un error detiene por completo la aplicaci贸n.

Como la mayor铆a de mis compa帽eros ya dijo, es interesante ver como los profesores reaccionan a los errores.

Es una lecci贸n de como debemos actuar, calmados y entender que sucede.

La verdad estoy muy contento con el curso, que calidad tan buena tiene el profesor de explicar. La verdad se le entiende todo muy claro. Esperamos seguir aprendiendo.

Ctr + S y estamos guardando o habilitar el autosave. Es buena practica aprender atajos del teclado y configurar otras funcionalidades solo presionando combinacion de teclas.

Con la funci贸n setInterval puedes ejecutar acciones cada cierto tiempo, se pasa como par谩metro el tiempo (cada cuanto tiempo se ejecutar谩) en milisegundos:

let i=0;

setInterval(function (){
  console.log("Acci贸n "+i);
  i++;
  
  
  if(i === 5) {
    console.log("Se aproxima un erro D:");
    //Error 
    var error = n + 12;
  }
}, 1000);

console.log('Seg煤nda instrucci贸n');

Usamos est谩 funci贸n para comprobar el comportamiento de hilos en Node.js

Muy Buena Clase .

Mi c贸digo de la clase.

//Primera linea que se escribe
console.log('hola mundo');

//como este proceso toma mas tiempo en ejecutar se delega
let i =0;
setInterval(function () {
    console.log(i);
    i++;

    if (i===5) {
        var a =3+z
    }
},1000)

//como el proceso anterior fue delegado se continua con la siguiente linea e codigo.
console.log("segunda intruccion");
console.log("Hola mundo");

let i = 0;

setInterval(function() {
    console.log(i);
    i++;

    if (i === 5) {
        var a = 3 + z;
    }

}, 1000);


console.log("Segunda instruccion");```

驴Por que no se ejecuta almenos una vez la funcion setInterval y luego el 2do log. Ejemplo:

Output:
Hola mundo
0
Segunda instruccion
1
2
3
4鈥
驴Por que pasa de una al segundo log?

C贸digo de la clase:

console.log('HolaMundo!!');

let i = 0;
setInterval(function()
{
  console.log(i);
  i++;
  if(i === 5 ){
    var a = 3 + z; 
  }
  //console.log('corta una cabeza, salen dos!!');
},1000);

Ejecuci贸n:

node nombre.js

![](

hay que estar atentos a los errores que puedan cortar la ejecuci贸n

Al ser monohilo, si se detecta un error detiene por completo la aplicaci贸n.

Todo lo que pueda fallar antes de que falle hay que comprobarlo.

si ponemos un try catch en el if no nos romper谩 el programa, es la forma de capturar estos posibles errores que nos pueden romper el programa

<
console.log('Hello word');

let i = 0;

setInterval(function() {
    console.log(i)
    i++
    try {
        if(i ===5){
            var a = 3 + z;
        }
    } catch (error) {
        console.log('error en el if')
    }
    
},1000);
console.log('segunda instrucci贸n');
> 

鉁 Holii! Si alguno le pas贸 como a m铆, que cuando intent贸 ejecutar en la terminal le apareci贸 este mensaje: "node no se reconoce como un comando interno o externo"
Sigan estos pasos para solucionarlo 馃槂

  1. Ir a Este Equipo Propiedades.
  2. Haz clic en Configuraci贸n avanzada del sistema en la barra izquierda de la ventana.
  3. Ahora tienes la ventana Propiedades del sistema. Haga clic en la pesta帽a Opciones Avanzadas.
  4. A continuaci贸n, haz clic en el bot贸n Variable de entorno 鈥
    5.Ahora tiene una ventana de variable de entorno: desde la variable de usuario, seleccione 芦Path禄
  5. Haga clic en Editar
  6. Ahora, en Valor de variable, agregue la ruta de acceso donde se instal贸 Node.js. ( C:\Archivos de programa\nodejs).
    8.Aceptar y Aplicar en las siguientes ventanas.
  7. El paso final es reiniciar su ordenador.
    Felicidades, ahora puedes usar los comandos npm.

Es interesante ver como el profesor utiliza

console.log("forzamos error")

para saber si su bloque if se est谩 ejecutando.

Puedes diferenciar entre un programador con experiencia y uno sin experiencia, viendo la cantidad de console logs en su c贸digo.

El programador sin experiencia casi no lo usa y por lo tanto, al momento de debuggear, se rompe la cabeza y tarda horas en resolver un problema.

El programador con m谩s experiencia suele utilizar m谩s loggear y adem谩s sabe cuando y donde ponerlos, de manera que la consola no se sature visualmente y sepa exactamente en donde est谩 el problema.

Esta es simple y sencillamente, una forma de conocer el comportamiento de tu c贸digo y es s煤per importante.

La forma 鈥渘ormal鈥 o 鈥渃om煤n鈥 de loggear es as铆

console.log("tu mensaje")

Sin embargo, el m茅todo log de console, puede aceptar m谩s de un par谩metro, lo que te permite loggear informaci贸n con un mejor formato.

Por ejemplo, si tienes una variable 鈥渪鈥 que cambia de valor mientras el c贸digo se est谩 ejecutando, y tu quieres conocer el valor de esta variable en diferentes etapas, lo puedes hacer con

console.log(x)

y esto como resultado te va a dar algo como

5

Ok perfecto, pero, si estuvieras loggeando m谩s elementos 驴Como sabr铆as cual de todos ellos es realmente 鈥渪鈥?
Una forma es la siguiente:

console.log("x es igual a: ", x)

lo cual como resultado te va a dar:

x es igual a: 5

De esta forma le estamos pasando m谩s de un par谩metro al m茅todo log, y as铆 est谩s loggeando de una manera m谩s descriptiva que te va a facilitar mucho las cosas en un futuro.

Otra forma es la siguiente:

console.log({x})

Si te das cuenta aqu铆 estamos loggeando a 鈥渪鈥 dentro de dos par茅ntesis de llave, lo cual genera un 鈥渙bjeto鈥 con 鈥渪鈥 como key y el valor de 鈥渪鈥 como value. Por lo tanto el resultado ser谩 el siguiente:

{x: 5}

lo cual tambi茅n es bastante descriptivo.

Espero que a alguien le haya servido este comentario y puedan de ahora en adelante debuggear mejor utilizando bien el m茅todo log

Pregunta de entrevista: 驴Qu茅 pasa si pones el timeout en 0 en vez de 1000?
R: Igualmente imprime:

  • Hola Mundo
  • Segunda Instrucci贸n
  • 0
  • 1
    etc.

Ya que el event loop intenta primero resolver los problemas m谩s simples, como imprimir algo, declarar o modificar una variable, etc, y env铆a las tareas mas complejas al thread pool donde se resuelven apenas sea posible.

Te ganaste un fan Carlos! Me encanta la manera que tiene de explicar este profesor!!! Super entendible

驴Que sucede?
Se habre un proceso de node, interpreta el archivo a codigo maquina, para ejecutarse, se ejecuta, y muestra en la consola el hola mundo , luego se cierra el proceso.
Ahora puede aver un problema al ser monohila, que si no andas con cuidado suficiente cuando se ejecute un error, para por completo nuestro proceso, andar pendientes de lo que pasa

Muy valiosa la forma de solucionar o encontrar la falla con el console.log tambi茅n me quedo con si algo puede salir mal, saldr谩 mal, Excelente clase

Traten a sus procesos como a una figura de porcelana

Todo lo que puede fallar compruebalo, eso es extremadamente cierto

Me encanta cuando los profes se equivocan pues el error es parte del aprendizaje y es muy probable que cometamos los mismo errores

Estar pendiente de todo lo que pasa en nuestro c贸digo, lo entiendo, no saldr谩 de mi mente jam谩s.

Ya me dio miedo Node.

El principal problema de ser Monohilo es que cuando ejecute un error eso va a parar por completo nuestro proceso.

todo lo que puede salir mal saldra mal jajaj 馃槂 sera mi nuevo mantra

Resumen de clase
El que todo se ejecute en un hilo es una ayuda y al mismo tiempo fuente de problema. Si no tenemos claro c贸mo funciona.

console.log('Hola mundo');

Cuando ejecutamos node, se abre un proceso, compila el archivo a c贸digo maquina, prepara lo necesario para ejecutarse y se ejecuta. Una vez dice hola mundo cierra el proceso.

console.log('Hola mundo');
setInterval(()=>{
    console.log('Sigo activo');
},1000);

En este caso node tendr谩 el eventloop abierto y estar escuchando en todo momento.

console.log('Hola mundo');
let i = 0;
setInterval(()=>{
    console.log(i);
    i++;
    if( i === 5) {
        console.log('forzando el error');
        var a = 3+z; //z no esta definido y el error no aparece al compilar
    }
},1000);

En este caso el error aparece y node deja de ejecutar totalmente. El problema de ser monohilo es que cuando aparezca un error para por completo el proceso.
Debemos estar pendientes de errores, escuch谩ndolos, evit谩ndolos.
Si sucede un error porque no has estado pendiente, ser谩 tedioso resolverlo.

console.log('Hola mundo');
let i = 0;
setInterval(()=>{
    console.log(i);
    i++;
},1000);
console.log('Adios mundo');

la l铆nea adi贸s mundo se va ejecutar sin esperar al setinterval, esa es la magia del comportamiento as铆ncrono

que bien explica el profeee ostiaaa

La clave en todo lenguaje es aprender debuggear el c贸dico

Monohilo: implicaciones en dise帽o y seguridad

console.log('Hola mundo')

let i = 0
setInterval(function () {
  console.log(i)
  i++

  /* if (i === 5) {
    var a = 3 + z
  } */
}, 1000)

console.log('Segunda instrucci贸n')

Se debe tener un cuidado muy grande al ejecutar sin tener las precauciones necesarias como: asignar las variables de forma adecuada, utilizar una sintaxis correcta, debido a que Node para todo si no se tiene un manejador de errores establecido y esto puede ocasionar problemas.

<h3>Monohilo</h3>
console.log("Hola Mundo")
//
let i = 0
setInterval(function() {
	console.log(i)
	i++
	
	if(i===5) {
	var a = 3 + z
	}
	console.log("sigo activo")
}, 1000)

console.log("segunda instrucci贸n")

Si no tienes pendientes de tus par谩metros tu hilo principal puede detenerse

node no funciona en la terminal.

Hola, ac谩 les comparto un foro en Stack Overflow por si no les funciona el comando 鈥渘ode鈥 en la terminal 馃槂

https://es.stackoverflow.com/questions/136407/node-no-se-reconoce-como-un-comando-interno-o-externo-programa-o-archivo-por

//Monohilo: implicaciones en dise帽o y seguridad

/*PROCESO DE NODE

    1.- Va a abrirse un proceso, ese proceso es un proceso de node
    2.- Interpreta todo el archivo
    3.- Convertirlo a c贸digo maquina
    4.- Prepara todo lo que necesita para ejecutarse
    5.- Se ejecuta
    6.- Se cierra el proceso, y termina

DESVENTAJAS MONOHILO

    - Si no se manejan bien los errores y uno truena, ya no continua con los procesos posteriores
    - Debes estar pendiente de todo el c贸digo
    El hecho de que sea monohilo lo hace delicado en el sentido de que puede ejecutarse algo que corte el c贸digo y
    detenga el programa, como la ausencia de sintaxis o una variable pendiente por definir
*/

console.log('Hola mundo');

let i = 0;

setInterval(function() {
    console.log(i);
    i++;

    // if (i === 5) {
    //     console.log('forzamos error');
    //     var a = 3 + z;
    // }
}, 1000);

console.log('Segunda instrucci贸n');

Si les sale por defecto powershell en su consola de VS code para ponerle el bash (que por cierto les servir谩 mucho en este y varios cursos) solo tienen que seguir lo siguiente

  1. Instala Git from https://git-scm.com/download/win (Si ya lo tienes instalado pasa al paso 4)

  2. Abre VS code y presiona Ctrl + ` para abrir el terminal.

  3. Se mostrar谩 en la parte inferior tu consola

  4. Abre el comando usando Ctrl + Shift + P.

  5. Escribe -> Select Default Shell

  6. Selecciona Git Bash

  7. Click en el 铆cono + en ventana del terminal

El nuevo terminal ser谩 un Git Bash terminal.

Monohilo: implicaciones en dise帽o y seguridad

Node al ejecutar o procesar c贸digo en un solo hilo es una ventaja y una fuente de problemas.

Buenas practicas

cuando estamos en la consola y ejecutamos un archivos js con node como por ejemplo node ejemplo.js primero se abrir谩 un nuevo proceso y es un proceso de node que va interpretar el archivo, lo convierte a c贸digo maquina, prepara todo lo necesario para ejecutar el c贸digo, luego se va ejecutar, muestra en pantalla el resultado y por ultimo el proceso se cerrara ocasionando que node termine.

Existe la opci贸n de ejecutar algo que este siempre activo y lo podremos lograr de la siguiente manera:

setInterval(() => {
  console.log("Estoy activo"), 1000;
});

// 0
// 1
// 2
// 3
// 4...

En el c贸digo anterior le estamos diciendo a node que cada un segundo muestre en consola el texto 鈥楨stoy activo鈥, esto se ejecutara infinitamente. Pero si llegara a fallar谩 algo, inmediatamente mostrara el error y node va para todos los procesos.

let contadorDeNumeros = 0;

setInterval(() => {
  console.log(contadorDeNumeros);
  
  if(contadorDeNumeros === 5) {
    console.log(contadorDeNumeros + numeroNoexistente);
  }
  contadorDeNumeros+=1;
}, 1000);

console.log(contadorDeNumeros);

// 0
// 1
// 2
// 3
// 4
// 5
// /home/mooenz/mis-apuntes/Curso-de-Fundamentos-de-Node-js/tempCodeRunnerFile.js:7
//     console.log(contadorDeNumeros + numeroNoexistente);
//                                     ^

// ReferenceError: numeroNoexistente is not defined
//     at Timeout._onTimeout (/home/mooenz/mis-apuntes/Curso-de-Fundamentos-de-Node-js/tempCodeRunnerFile.js:7:37)
//     at listOnTimeout (internal/timers.js:555:17)
//     at processTimers (internal/timers.js:498:7)

Es importante estar pendiente todo lo que sucede en nuestras aplicaci贸n o programa y si algo tiene una probabilidad de fallar, fallar谩.

Tambi茅n debemos tener presente que se pueden mitigar estos errores o controlar pues node al detectar un error lo que va a hacer es para todos los hilos que se est谩n ejecutando dando por finalizado nuestro programa y no sabremos en que estado quedo cada hilo de ejecuci贸n, por eso ser谩 muy clave tener un plan cuando suceda por que estar铆amos evitando la finalizaci贸n de todo el programa.

Conclusi贸n, cuidar nuestro programa e hilo principal, todo lo que se puede ejecutar en as铆ncrono, ejec煤temelo. Frase del d铆a 鈥榮i algo tiene una probabilidad de fallar, fallar谩鈥.

Estuve corriendo tres procesos en mi Mac hasta que llegu茅 al minuto 9:10". Para parar un proceso Control + C.

ESTAR MUY MUY MUY PENDIENTES DE AQUELLAS FUNCIONES O PROCESOS QUE PUEDAN LANZAR UN ERROR QUE NO ESTE MANJEADO Y SE DETENGA TODA LA EJECUCI脫N!.

Ahhh es que no hab铆a guardado, muy bien Carlos鈥
Debemos estar muy pendientes de la revisi贸n de nuestro c贸digo y cuidar el 煤nico hilo de ejecuci贸n del que disponemos.

RECORDEMOS, si crees que algo no puede fallar, pues lo har谩.

Los ejemplos sencillos, para enfocarnos el punto de explicaci贸n, genial

Es muy interesante si campuras el error y lo mandas a la consola, no se detiene el hilo

//Manejo de errores NO se detiene la ejecici贸n
setInterval(() => {
  console.log(i);
  i++;

  if (i === 5) {
    try {
      let a = i + z;
    } catch (err) {
      console.log(err);
    }
  }
}, 1000);```

A todos en alg煤n momento nos pasa que NO GUARDAMOS EL C脫DIGO y nos asusta que algo haya salido mal, pero no siempre es eso.

Si usas VS Code te recomiendo poner el autoguardado despu茅s de cada edici贸n de l铆nea, ser谩 un segundo que te ahorrar谩s por cada ejecuci贸n de c贸digo.

Monohilo= Si no tenemos cuidado suficiente cuando se ejecute un error eso va a parar por completo todo nuestro codigo, tenemos estar atentos con cada detalle!

Muy buena clase, muy buen profesor

hay que tener claro que las funciones as铆ncronas no se ejecutaran hasta que el callstack se encuentre vaci贸

Esto se pondr谩 bueno cada vez que se rompa el c贸digo鈥 Que Node se apiade de nosotros.

EStar oendiente en el codigo y controlar las validaciones

setInterval(function, milliseconds)
ejecuta la funcion en un tiempo especifico en milisegundos repitiendo continuamente.

Es algo muy bueno a tener en cuenta

Una pregunta:
Pero no seria algo bueno, es decir si hay un error en el threat pool entonces sabemos que es ahi y no en el task stack?
Significa que el proceso se irrumpe cuando se ejecutan las tareas en la 鈥減iscina de hilos鈥?

He probado en la consola del browser y el error se ejecuta infinitamente lol

Cuando el profe da consejos sin parpadear, es que la cosa es seria jejeje 馃槷

Hola aca les dejo mi repositorio 馃槃
https://github.com/Juangr1803/Fundamentos-nodejs

Node js es monohilo, por eso tenemos que tener cuidado con los errores, ya que un error que no se ha tratado puede botar toda nuestra app!

馃憣

Me gusta como explica, se le entiende muy bien.

entendido 馃槂 tener ojo con los errores

Muy amena la explicaci贸n

Lo podemos controlar con un trycatch as铆:

let i = 0;
setInterval(function () {
  try {
    console.log(i)
    i++;

    if (i === 5) var a = 3 + z;
  } catch (error) {
    console.error(error);
  }
}, 1000);

Muy buena explicaci贸n.

jaja si algo puede salir mal, seguramente saldr谩 mal xd

Genial.

Esta clase me hizo dar mucho miedo! Jajaja

Muy buena explicaci贸n

uy super la informaci贸n de esta clase