Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
NodeJs javascript: espere hasta que se asigne la propiedad del objeto anterior antes de asignar la siguiente propiedad

Supongamos que tengo un código como este:

 let result = { name: downloadNameFromInternetVerySlow(), isFamous: determineIfNameIsFamous(this.name); }
 const downloadNameFromInternetVerySlow = () => { path = "/home"; const folders = fs.readdirSync(path).filter(file => fs.lstatSync(path).isDirectory()); console.log(folders); return folders[0]; }

downloadNameFromInternetVerySlow puede llevar mucho tiempo, mientras tanto, determineIfNameIsFamous depende del resultado de downloadNameFromInternetVerySlow para devolver el valor correcto.

¿Cómo me aseguro de que determineIfNameIsFamous solo se ejecute después de que finalice downloadNameFromInternetVerySlow ?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede convertir downloadNameFromInternetVerySlow en Promise (si aún no lo ha hecho). y luego el usuario await para esperar hasta que termine. De lo contrario, puede usar Promise.then()

(Esto debería estar dentro de una función async )

 let name = await downloadNameFromInternetVerySlow(), let isFamous = determineIfNameIsFamous(this.name); let result = { name, isFamous }

Otro método usando Promise.then

 let name, isFamous; downloadNameFromInternetVerySlow().then(result => { name = result; isFamous = determineIfNameIsFamous(this.name); });
about 4 years ago · Juan Pablo Isaza Report

0

Suponiendo que downloadNameFromInternetVerySlow sea asíncrono (de lo contrario, ya funcionaría como usted desea), la solución es usar await .

Tenga en cuenta que, para poder hacer eso, este código debe incluirse en una función async (o en un nivel superior con espera de nivel superior disponible).

 async function getAndUseResult(){ let result = { name: await downloadNameFromInternetVerySlow(), isFamous: determineIfNameIsFamous(this.name) } console.log(JSON.stringify(result)) } getAndUseResult();
about 4 years ago · Juan Pablo Isaza Report

0

asíncrono/espera

Hay una sintaxis especial para trabajar con promesas de una manera más cómoda, llamada " async/await ".

Una función asíncrona devuelve una promesa, como en este ejemplo:

 const doSomethingAsync = () => { return new Promise(resolve => { setTimeout(() => resolve('I did something'), 3000) }) }

Cuando desee llamar a esta función, anteponga esperar y el código de llamada se detendrá hasta que la promesa se resuelva o rechace. Una advertencia: la función del cliente debe definirse como asíncrona. Aquí hay un ejemplo:

 const doSomething = async () => { console.log(await doSomethingAsync()) }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!