我正在使用for of JavaScript 回圈。我的代碼如下所示。
for (let [key, value] of data) {
if(key == 0) {
// do something.
} else {
// do something.
}
我得到以下錯誤。
Uncaught (in promise) TypeError: data[Symbol.iterator]().next().value is not iterable
如何在 JavaScript 的for回圈中使用Key in ?
uj5u.com熱心網友回復:
如果你的資料是一個你可以做的物件
const data = {
a: 1,
b: 2,
c : 3
}
for(let [key, value] of Object.entries(data)){
console.log(`key: ${key} and value: ${value}`)
}
正如@Maik Lowrey指出的那樣,問題似乎有所不同
看起來資料是一個承諾(或一系列承諾)
在第一種情況下,您只需呼叫.then
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}`)
}
})
uj5u.com熱心網友回復:
您的資料在回圈時仍然是 Promise。顯然,您正在從 API 或類似的東西獲取資料。這意味著您必須等到 Promise 解決。您可以使用 async await 或 loop inside then()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/464698.html
標籤:javascript
