gpt4 book ai didi

Firebase 数据库快照 ForEach 异步等待

转载 作者:行者123 更新时间:2023-12-02 21:36:46 26 4
gpt4 key购买 nike

async/await 似乎不适用于 firebase forEach。此代码为快照的第一个子项运行 console.log,然后挂起。这是一个错误还是我遗漏了什么?

main()
async function main() {
const snap = await root.ref('somepath')
.once('value')

snap.forEach(async val => {
await console.log(val.key)

})
}

最佳答案

这是某个功能的无意结果,有时被称为错误。来自 firebase 文档: Firebase documentation

async 函数总是返回一个 Promise。 promise 是真实的值(value):

!!Promise.resolve===true

作为解决方法,请尝试以下解决方案:

main()
async function main() {
const snap = await root.ref('somepath')
.once('value')

snap.forEach(function wrapper(){async val => {
await console.log(val.key)
}})

不过,它不会等待 promise 完成后再转到下一个快照。这将需要更多的代码,但这可能不是您所需要的。

关于Firebase 数据库快照 ForEach 异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45595587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com