cra*_*rog 4 javascript redis node.js
我正在发出一个简单的Redis'请求,该请求应该返回数据库中的所有值(而不是键)。问题是我的函数在事件开始tab之前返回.forEach。我为什么知道这个?Myconsole.log(tab)的结果在每次迭代之前打印console.log(cards)。我的解释器还在.forEach函数内部告诉我"Promise returned from forEach argument is ignored". 我在那里做错了什么?为什么 async/await 不能在内部工作.forEach?
router.get("/", async (req, res) => {
try {
const keys = await client.keys("*")
//console.log(result)
const tab = []
await keys.forEach(async (key) => {
const cards = await client.smembers(key)
console.log(cards)
tab.push(cards)
})
console.log(tab)
return res.send(tab)
} catch (err) {
console.error(err)
}
});
Run Code Online (Sandbox Code Playgroud)
forEach不适合使用异步函数。您可以使用for ... of循环代替。
for(const key of keys){
const cards = await client.smembers(key)
console.log(cards)
tab.push(cards)
}
Run Code Online (Sandbox Code Playgroud)