Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

269
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda