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

276
Vistas
Cómo sincronizar las funciones asíncronas en el nodo js

Hice algunas operaciones de base de datos y después de algunas llamadas de telenovelas. Aquí está el resultado. No me pareció correcto. ¿Cómo puedo sincronizarlos en nodejs? Todo esto son funciones asíncronas.

aquí está el código

 sccmConnectDB.getAllComputers().then(result => { computers = result[0] console.log("select from sccm db is completed...") caConnectDB.deletezSCCM2CM().then(result => { console.log("deleting from ca db zsccm2cm table is completed..."); caConnectDB.insertzSCCM2CM(computers).then(result => { console.log("inserting ca db zsccm2cm table is completed..."); login.login().then(sessionId => { console.log("login successfull"); getHostName.getHostNames().then(result => { hostNames = result[0]; console.log("query result for hostname -->", hostNames); hostNames.forEach(element => { uuid = "nr:" + element.uuid; attrVals = { string: ["system_name", element.compName] }; attrbts = { Attributes: [] } updateObject.updateObject(sessionId, uuid, attrVals, attrbts).then(result => { console.log("Update successfull"); }); }); logout.logout(sessionId).then(result => { console.log("logout successfull"); }); }); }); }); }); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

"Cómo forzar algo asíncrono para que se sincronice" Probablemente no puedas de todos modos, y en los casos en que puedas, no lo harás. ALGUNA VEZ. Como muchas preguntas, la tuya es un problema XY . Preguntas cómo hacer algo que crees que resolverá tu problema, cuando solo lo empeorará.

No obligas a un proceso asíncrono a ser síncrono. Aprende el asincronismo y acepta su poder, o abandona Node.js y usa un lenguaje y tiempo de ejecución síncronos.

Una de las formas de hacerlo, y probablemente la más elegante, es usar await :

(Nota: antes de que alguien comente "Debe estar en una función asíncrona", no, no es así, ya que Node v14.8 admite la espera de nivel superior )

 let result = await sccmConnectDB.getAllComputers(); const computers = result[0]; console.log("select from sccm db is completed...") await caConnectDB.deletezSCCM2CM(); console.log("deleting from ca db zsccm2cm table is completed..."); await caConnectDB.insertzSCCM2CM(computers); const sessionId = await login.login(); console.log("login successfull"); result = await getHostName.getHostNames(); const hostNames = result[0]; console.log("query result for hostname -->", hostNames); let uuid, attrVals, attrbts; for (let element of hostNames) { uuid = "nr:" + element.uuid; attrVals = { string: ["system_name", element.compName] }; attrbts = { Attributes: [] }; await updateObject.updateObject(sessionId, uuid, attrVals, attrbts); console.log("Update successfull"); } await logout.logout(sessionId); console.log("logout successfull");

En pocas palabras, todo lo escrito someFunction().then( result => también se puede escribir const result = await someFunction(); Es azúcar sintáctico que parece código síncrono pero sigue siendo asíncrono.

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