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

231
Views
¿Cómo llamar a una función común de manera efectiva, ya sea que se ejecute una función síncrona o asíncrona usando Promises?

Necesito llamar a una función común ya sea que se invoque la función síncrona o la función asíncrona .

Así es como escribí por primera vez, pero esto no es correcto ya que se llamará a foo antes de que se complete la función asíncrona.

 function main(element) { if (element.id === 'sync') { syncFunction(); } else { asyncFunction(); } foo(); }

Entonces, se me ocurrió esto, pero aquí siento que estoy repitiendo la llamada a foo demasiadas veces. ¿Hay una mejor manera?

 function main(element) { if (element.id === 'sync') { syncFunction(); foo(); } else { asyncFunction().then(() => { foo(); }); } }

Podría usar async/await y refactorizar esto aún mejor, pero donde este código finalmente se ejecutará no lo admite . ¿Hay alguna manera de escribir mejor esto usando promesas?

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

0

Si coloca el resultado de la llamada en Promise.resolve() , puede encadenar .then incondicionalmente.

 function main(element) { Promise.resolve((element.id === 'sync' ? syncFunction : asyncFunction)()) .then(foo); }
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!