javascript - Javascript循环不能按预期与firebase一起工作
问题描述
我有这个代码
function updateMonthly(puid) {
firebase.database().ref('partner').child(puid).once('value').then(async(snapshot) => {
partner = snapshot.val()
if(partner.hasOwnProperty('users')){
if(partner.users.hasOwnProperty('first')){
monthly = 0
first = partner.users.first;
Promise.all(
await first.map((key) => {
return firebase.database().ref('user').child(key).once('value').then(u => {
u = u.val()
if(u.pack.name != 'no pack'){
monthly = monthly + 10
}
})
})
).then(() => {console.log(monthly+" "+partner.uid)}).catch(error => console.log(error)) //output
}
}
});
}
function generatePayments() {
firebase.database().ref().child('partner').once('value').then(snapshot => {
snapshot.forEach((child) => {
partner = child.val();
updateMonthly(partner.uid);
})
}).catch(error => console.log(error))
}
输出为
-8.5 uz0Wfx5SZwRWdcjihBSPr0BO0wH2
-38.5 uz0Wfx5SZwRWdcjihBSPr0BO0wH2
-46.225 uz0Wfx5SZwRWdcjihBSPr0BO0wH2
-181.225 uz0Wfx5SZwRWdcjihBSPr0BO0wH2
为什么我四次获得相同的“partner.uid”而不是获得所有其他的 uid?
预期输出为:
-8.5 uz0Wfx5SZwRWdcjihBSPr0xo0wH2
-38.5 pl0Wunlv3RWdcjihBSPr0Op0wH2
-46.225 gw0Wff5S3wRWdcjihBSPr0BO0wH2
-181.225 zd0Wfx5SZwRpOcjihBSPr3dBO0wH2
解决方案
推荐阅读
- javascript - 是否可以将 2 个或更多大画布拼接在一起以获得 1 个图像块?
- vba - 我的宏保存来自一个发件人/主题的 PDF 附件。如何让它处理多个发件人/主题?
- mongodb - 如何在MongoDB中查找分配给多个值的相同键值的记录
- python - 将向量的每个元素重复由另一个计数向量提供的次数
- ios - 无法在 Xcode 的 Interface Builder 中处理“限制到边距”
- powershell - Get-adcomputer 字段到变量包括 cr/lf
- ios - Web VR 模式在 iOS13 上的 Safari 中不再工作吗?
- perl - SOAP::WSDL 返回错误 Can't use an undefined value as an ARRAY reference
- c# - C# 编译器扩展在构建时不显示消息
- r - Keras (R):训练后移除层