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

166
Vistas
¿Hay alguna manera de escribir código/función asíncrona sin la participación de las API web?

Sé que suena estúpido porque javascript tiene un solo subproceso, pero no puedo evitar pensar en una función que lleva una cantidad de tiempo inusual sin la participación de API web como esta

 console.log("start") function apple() { let appleCount = 10; while (appleCount < 1000000) { appleCount = appleCount + 10; appleCount = appleCount * 0.0000052 } } apple(); console.log("end")

Entonces, ¿hay alguna manera de ejecutar esta función de Apple de forma asincrónica? Intenté ejecutar este código en el navegador pero no obtuve ningún resultado... ayúdenme...

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

0

La única forma de ejecutar algo que es 100% Javascript simple como su función apple() para que no bloquee el hilo principal es ejecutarlo en un hilo diferente (en nodejs, para usar un WorkerThread) o en un proceso diferente .

Como parece saber, el subproceso principal ejecuta su Javascript en un solo subproceso, por lo que cualquier cosa que sea simplemente JavaScript ocupa ese único subproceso mientras se ejecuta. Para que no ocupe ese único subproceso y bloquee el bucle de eventos, debe ejecutarlo en un subproceso diferente, ya sea un WorkerThread o ejecutarlo en otro proceso.


Se pueden usar trucos de tiempo como setTimeout(apple, 100) o setImmediate(apple) o incluso Promise.resolve().then(apple) para cambiar CUÁNDO se ejecuta el código (retrasando cuando comienza), pero todos estos trucos de tiempo son cambia cuando el código comienza a ejecutarse. En todos estos casos, cuando se ejecuta, aún bloquea y ocupa el subproceso principal y bloquea el bucle de eventos mientras se ejecuta.


FYI, hay muchas operaciones asincrónicas en nodejs que no son necesariamente API web. Por ejemplo, hay API de archivos asíncronos y API criptográficas que son asíncronas y sin bloqueo. Por lo tanto, su pregunta debe modificarse para que no se refiera solo a las API web, sino a cualquier API asíncrona.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Entonces, ¿hay alguna manera de ejecutar esta función de Apple de forma asíncrona?

Si no desea esperar hasta que se complete su función Apple, puede usar Async Functions .

NOTA: Async/Promises no son verdaderos asíncronos.

 console.log("start") async function apple() { let appleCount = 10; while (appleCount < 1000000) { appleCount = appleCount + 10; appleCount = appleCount * 0.0000052 } } apple().then(() => console.log("Apple completed")); console.log("end")

Pero si desea ejecutarlo en otro hilo , entonces debe usar Workers

https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API

about 4 years ago · Juan Pablo Isaza Denunciar

0

Solo tienes que devolver las promesas.

 function double(num) { return Promise.resolve(num * 2); } function add5(num){ return Promise.resolve(num + 5); } double(1)// 2 .then(add5)// 7 .then(double)// 14 .then(console.log)
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