gpt4 book ai didi

javascript - 如何解决我的异步函数?

转载 作者:行者123 更新时间:2023-12-03 02:01:32 27 4
gpt4 key购买 nike

我想获取数据库中每个商店的用户数量。因此,我在数据库中调用了两个电话,一个用于商店,另一个用于用户。我有一个问题,我的“nbr_users”返回值中没有任何内容。您能帮忙吗?

function nbr_users(key) {
return new Promise((resolve, reject) => {
db.User.find({
shop: key
}, (err, users) => {
if (err) reject(err)
else {
resolve(users.length) // Maybe my problem is here...
}
})
})
}

module.exports = (req, res) => {
db.Account.find({},
(err, accounts) => {
if (err) res.json(err)
else {
var accountMap = {}
var i = 0;
accounts.forEach(async function(account) {
accountMap[i++] = {
users: await nbr_users(account.key) // the value I want
}
});
res.json({user_list: accountMap})
}
})
}

最佳答案

您从 nbr_users(key) 返回了一些内容。你有一个 promise ,那么你可以使用.then

因为你处于异步循环中。函数,并且您不想丢失 i 我建议您使用匿名 Immediately-invoked function expression

function(i){
nbr_users(account.key).then(function(length){
accountMap[i] = {
users: length
})
}(i++);

关于javascript - 如何解决我的异步函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49997814/

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