Estoy usando for of loop de JavaScript. Mi código es como a continuación.
for (let [key, value] of data) { if(key == 0) { // do something. } else { // do something. }Estoy recibiendo el siguiente error.
Uncaught (in promise) TypeError: data[Symbol.iterator]().next().value is not iterable
¿Cómo usar Key in for of loop de JavaScript?
Si sus datos son un objeto que podría hacer
const data = { a: 1, b: 2, c : 3 } for(let [key, value] of Object.entries(data)){ console.log(`key: ${key} and value: ${value}`) }Como señaló @Maik Lowrey , el problema parece ser diferente
Parece que los datos son una promesa (o una serie de promesas)
en el primer caso solo tienes que llamar .entonces
const data = Promise.resolve({ a: 1, b: 2, c: 3 }) data.then(d => { for (let [key, value] of Object.entries(d)) { console.log(`key: ${key} and value: ${value}`) } }) const data2 = [4, 5, 6].map(n => Promise.resolve(n)) Promise.all(data2).then(d => { for (let [key, value] of Object.entries(d)) { console.log(`key: ${key} and value: ${value}`) } })Sus datos siguen siendo una Promesa en el momento del bucle. Aparentemente, está obteniendo datos de una API o algo similar. Esto significa que debe esperar hasta que se resuelva la Promesa. Puede trabajar con async await o loop inside then() .