使用 .forEach 时出现 async/await 问题

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)

hev*_*ev1 5

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)