【发布时间】:2020-06-18 16:11:08
【问题描述】:
这是我从 firebase 获取数据的代码:
const querySnapshot = await db.collection('entries').get()
我想将每个条目元素的数据添加到一个新数组中,为此我有两种方法:
querySnapshot.forEach((entry) => {
const entryData = entry.data()
entries.value.push(entryData)
})
和
for (const entry of querySnapshot) {
const entryData = entry.data()
if (entry) { entries.value.push(entryData)
}
第一个解决方案有效,但第二个引发此错误:TypeError: "querySnapshot is not iterable"。这两种方式不是基本一样吗?为什么 on 会抛出错误,而另一个不会?
【问题讨论】:
-
因为
get()返回的任何东西都没有实现Symbol.iterator循环所需的for...of。forEach()不需要Symbol.iterator,因为这是返回对象上已经可用的方法
标签: javascript for-loop foreach