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

270
Views
Atributos de clase Javascript no definidos con la sintaxis "Callback Hell"

así que estoy tratando de hacer un paquete de nodos para la API de Roblox, y dentro de él, he decidido adoptar un enfoque OOP. El problema surge cuando los atributos como <RobloxUser>.id aparecen inesperadamente como indefinidos, agregué declaraciones de console.log y las llamadas API devuelven los valores esperados.

Originalmente agregué un IIFE asíncrono dentro del constructor de clases para hacer llamadas usando la sintaxis asíncrona/espera y estaba teniendo este problema. Así que pensé que era un problema de alcance o algo por el estilo y cambié mi sintaxis a la sintaxis de estilo "callback hell" y todavía tengo este problema.

Para probar mi teoría, configuré una variable <RobloxUser>.test = 0 , luego usé console.log , imprimí 0 como se esperaba, luego lo configuré igual a 2 dentro de la devolución de llamada y lo imprimí fuera de la devolución de llamada y volvió a imprimir 0.

En todo el tiempo que he trabajado con Javascript, nunca he tenido un problema similar a este, si alguien puede ofrecerme una idea de cómo puedo resolver este problema, se lo agradecería mucho.

Código de clase RobloxUser:

 class RobloxUser { constructor(response) { axios.get(`https://users.roblox.com/v1/users/${response.data.Id}`).then(res => { this.username = res.data.name; this.displayName = res.data.displayName; this.id = res.data.id; this.info = { }; let joinDate = new Date(res.data.created); let now = new Date(); this.info.accountAge = Math.round(Math.abs((joinDate.getTime() - now.getTime()) / (24 * 60 * 60 * 1000))); this.info.isBanned = res.data.isBanned; }); axios.get(`https://friends.roblox.com/v1/users/${this.id}/friends/count`).then(res => { this.info.friendCount = res.data.count; }); axios.get(`https://friends.roblox.com/v1/users/${this.id}/followings/count`).then(res => { this.info.followingCount = res.data.count; }); axios.get(`https://friends.roblox.com/v1/users/${this.id}/followers/count`).then(res => { this.info.followerCount = res.data.count; }); axios.get(`https://users.roblox.com/v1/users/${this.id}/username-history`).then(res => { this.info.pastUsernames = res.data.data.map(data => data.name) }); } getThumbnailURL() { } }
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!