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

187
Vistas
¿Cómo convertir código async/await en código de bloqueo en javascript?

Sé que bloquear el bucle de eventos es malo y las consecuencias de eso. Pero incluso el módulo fs nativo proporciona algunas funciones de sincronización para algunos fines, por ejemplo, las CLI que usan fs.readFileSync .

Me gustaría convertir el siguiente código de espera asincrónica en código de bloqueo.

 let value = undefined; function setup() { return new Promise((resolve) => { setTimeout(() => { value = "**value**"; resolve(); }); }); } // need to convert below function to blocking async function getValue() { await setup(); return value; } console.log(await getValue()); // top level await OK

Asumiendo que está bloqueando, entonces podemos llamarlo como

 getValue(); // without await or .then

Lo probé así. Pero no está funcionando.

 function getValue() { setup(); while (!value) { // wait until we get value } return value; } console.log(getValue())

¿Cómo puedo conseguir esto?

(El fs.readFileSync está bloqueando. ¿Hay alguna manera de que podamos usar la técnica utilizada por readFileSync)

Editar

Hilo relacionado: Convertir el método asincrónico/de devolución de llamada en método de bloqueo/sincrónico

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

0

¿Cómo puedo conseguir esto?

Cambias de idioma.

En serio: JavaScript es (más o menos, hay muchas advertencias allí) de un solo subproceso. Su código de devolución de llamada debe ser procesado por el mismo hilo que pretende bloquear.

NO hay manera de que puedas lograr esto: es imposible.

Entonces, o cambia su idioma (en C# o Java puede activar un hilo y bloquearlo como desee, mientras que otros hilos hacen algo de trabajo), o cambia los requisitos.

Sospecho que esta última opción es la solución real a su supuesto problema. Ahora, ¿qué es lo que realmente necesitas hacer?

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