Actualmente estoy enfrentando un problema:
Después de obtener una solicitud de respuesta API, quería almacenar esa información en la pestaña.
Decidí crear un objeto para obtener una pestaña de objeto y luego hacer lo que quisiera.
El problema es que cuando muestro la pestaña puedo ver lo que hay dentro, pero cuando quiero obtener la pestaña [0], por ejemplo, me muestra 'indefinido'. Estoy bastante bloqueado en este punto ya que realmente no sé por qué mi pestaña [O] no está definida ...
Aquí está el código que uso:
let tab = []; fetch("http://127.0.0.1:8000/api/assets").then(response => { response.json().then(data => { for(let i = 0 ; i < data.length ; i++){ let obj = { logo: data[i]["symbol"], name: data[i]["name"], price: data[i]["price"] } tab.push(obj); } }); }).catch( err => { console.log("err: " + err) }) console.log(tab) console.log(tab.length) console.log(tab[0])general.js:218 = consola.log(pestaña)
general.js:219 = consola.log(tab.longitud)
general.js:220 = consola.log(pestaña[0])
Está imprimiendo su objeto de tab en la consola antes de que la solicitud haya tenido tiempo de finalizar. Intente mover las declaraciones de console.log() a su secuencia de comandos de solicitud después de que haya recibido los datos:
let tab = []; fetch("http://127.0.0.1:8000/api/assets").then(response => { response.json().then(data => { for(let i = 0 ; i < data.length ; i++){ let obj = { logo: data[i]["symbol"], name: data[i]["name"], price: data[i]["price"] } tab.push(obj); } console.log(tab) console.log(tab.length) console.log(tab[0]) }); }).catch( err => { console.log("err: " + err) })Lo está comprobando antes de que regrese la fetch , debe hacerlo después de la siguiente manera:
let tab = []; fetch("http://127.0.0.1:8000/api/assets") .then(response => { response.json().then(data => { for (let i = 0; i < data.length; i++) { let obj = { logo: data[i]["symbol"], name: data[i]["name"], price: data[i]["price"] }; tab.push(obj); } }) }) .then(function(response) { console.log(tab); console.log(tab.length); console.log(tab[0]); }) .catch( err => { console.log("err: " + err); });