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

265
Views
¿Cuál es la forma correcta de extender una clase en JavaScript si super() necesita esperar una promesa?

Escribí una clase inusual en la que imaginé que podría cargar un archivo JSON para cumplir con muchas de las configuraciones de la clase e iniciar un objeto en consecuencia. Excepto que lo que sucede es que la función regresa de forma asíncrona mientras esperamos la promesa del sistema de archivos (y eso es un no cuando se extiende una clase, ya que se debe llamar a super() ). Claro, podría ir sincrónico con la llamada fs , pero eso parece una tirita. ¿Cuál es la manera correcta de hacer esto?

 module.exports = class EntityLoader extends Entity { constructor(args, jsonPath="./web/classes/objects/box-pile.json"){ fs.promises.readFile(jsonPath, 'utf8').then(data => { const settings = JSON.parse(data) super({ ...settings, ...args }) this.ready.then(() => { if (settings.children) settings.children.forEach(childSettings => { this.addChildSprite({...childSettings}).position.set(...childSettings.position[0]) }) }) }); } }

Error:

 ... snip ...\classes\objects\box-pile.js:31 Uncaught ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor at new EntityLoader ... snip ...
about 4 years ago · Juan Pablo Isaza
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!