Aquí está mi código
export default class Application extends EventEmitter { constructor() { super(); this.config = config; this.data = { planets: [planetData] }; this.init(); let url; let count; let planetData = [] let promises = []; //turn through the pages for (let p = 1; p < 7; p++) { url = `https://swapi.boom.dev/api/planets?page=${p}`; //fetch data promises.push(fetch(url).then(res => res.json()) .then(data => { //push data to array for (let i = 0; i < data.results.length; i++) { planetData = planetData.concat(data.results[i]); } })); } Promise.all(promises) .then(() => { console.log(planetData.length, '=>', planetData); }) } Necesito ayuda para asignar la matriz planetData a this.data{} . Intenté lo siguiente this.data{ planets: [planetData] , pero dio un error "No se puede acceder a 'planetData' antes de la inicialización", que se esperaba. Mi sintaxis probablemente también sea incorrecta, pero soy realmente nuevo en JS.
Debe asignar la variable después de que se haya llenado la matriz planetData .
Quizás puedas probar algo como esto:
Promise.all(promises) .then(() => { console.log(planetData.length, '=>', planetData); }) .then(() => { this.data.planets = planetData; })Puede asignar planetData a los planets clave más adelante en su código usando:
this.data.planets = planetData;