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
exportar el valor esperado como módulo ESM

Acabo de darme cuenta de que lo siguiente funciona en el nodo 14.17.3:

a.js:

 console.log("a.js executes") async function wait(){ console.log('wait runs') return new Promise((resolve, reject)=>{ setTimeout(()=>{resolve("foo")},3000) }) } export default await wait()

b.js:

 import data from './a.js' console.log("b.js executes") export default function test(){ console.log("b.js: imported from a.js:",data) }

c.js:

 import data from './a.js' console.log("c.js executes") export default function test(){ console.log("c.js: imported from a.js:",data) }

d.js:

 import test_b from './b.js' import test_c from './c.js' test_b() test_c()

Cuando ejecuto d.js , obtengo el siguiente resultado, mientras que hay un retraso de 3 segundos entre la segunda y la tercera línea:

 a.js executes wait runs b.js executes c.js executes b.js: imported from a.js foo c.js: imported from a.js: foo

Esto es exactamente lo que quiero, pero no entiendo por qué funciona. El cargador de módulos parece esperar a que se resuelva la función de wait asíncrona, antes de ejecutar b.js y c.js e importar el valor resuelto a los módulos.

Apuesto a que esto no funcionó hace un par de años.

¿Alguien podría decirme cómo se llama esta función? ¿Es una característica del propio ES o del sistema de carga de módulos del nodo?

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

0

Se llama await de nivel superior. Hay una clara explicación de esto aquí , en la segunda opción.

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!