I'm making a simple Redis' request which is supposed to return all VALUES (not keys) in my database. The problem is that my function returns tab before the .forEach even starts. Why do I know that? My console.log(tab)'s result is printed before console.log(cards) for each iteration.
My interpreter also tells me inside the .forEach function that "Promise returned from forEach argument is ignored".
What have I done wrong there? Why isn't async/await working inside .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)
}
});
forEachdoesn't return a promise which is why you're getting that warning.maporreduce. Maybe create an array of promises and awaitPromise.allinstead.