Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

340
Vistas
Escribir funciones asincrónicas verdaderas y personalizadas en Javascript/Node
  1. ¿Cómo logran la asincronía las funciones integradas de NodeJS?

  2. ¿Puedo escribir mis propias funciones asincrónicas personalizadas que se ejecutan fuera del hilo principal? ¿O tengo que aprovechar las funciones integradas?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Javascript es mono-hilo, si desea crear un 'hilo', puede usar https://nodejs.org/api/worker_threads.html .

Pero es posible que haya oído hablar de la función asíncrona y las promesas en javascript, la función asíncrona devuelve una promesa de forma predeterminada y la promesa NO es un hilo. Puede crear una función asíncrona como esta:

 async function toto() { return 0; } toto().then((d) => console.log(d)); console.log('hello');

Aquí mostrará hola, luego 0, pero recuerde que incluso .then() se ejecutará después de que sea una promesa, por lo que no se ejecutará en paralelo, solo se ejecutará más tarde.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Solo una nota al margen, true asynchronous realmente no significa nada. Pero podemos suponer que te refieres al paralelismo?.

Ahora, dependiendo de lo que esté haciendo, es posible que encuentre que hay poco o ningún beneficio en el uso de subprocesos en node. Tomemos, por ejemplo: el sistema de archivos de los nodos, siempre que no use las versiones de sincronización, ejecutará automáticamente varias solicitudes en paralelo, porque el nodo simplemente pasará estas solicitudes a los subprocesos de trabajo.

Es la razón por la que la gente dice que Node tiene un solo subproceso, en realidad es incorrecto, es solo el motor JS. Incluso puede probar esto observando la cantidad de subprocesos que toma un proceso de nodeJs utilizando el monitor de procesos de su elección.

Entonces, podría preguntarse, ¿por qué tenemos subprocesos de trabajo en el nodo? Bueno, el motor V8 JS que usa el nodo es bastante rápido en estos días, así que digamos que desea calcular PI a un millón de dígitos usando JS, podría hacerlo en el hilo principal sin bloquear. Pero sería una pena no usar esos núcleos de CPU adicionales que tienen las PC modernas y mantener el hilo principal haciendo otras cosas mientras se calcula el PI dentro de otro hilo.

Entonces, ¿qué pasa con File IO en el nodo? ¿Estaría este beneficio en un subproceso de trabajo? Bueno, esto depende de lo que haga con el resultado del file-io, si solo estaba leyendo y luego escribiendo bloques de datos, entonces no hay no sería ningún beneficio, pero si dice que estaba leyendo un archivo y luego haciendo algunos cálculos pesados en estos archivos con Javascript (por ejemplo, alguna compresión de imagen personalizada, etc.), entonces nuevamente un subproceso de trabajo ayudaría.

Entonces, en pocas palabras, los subprocesos de trabajo son excelentes cuando necesita usar Javascript para algunos cálculos pesados, usarlos solo para IO simple, de hecho, puede ralentizar las cosas, debido a los gastos generales de IPC.

No menciona en su pregunta qué está tratando de ejecutar en paralelo, por lo que es difícil decir si hacerlo sería beneficioso.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda