Estoy haciendo una solicitud simple Redis' que se supone que devolverá todos los VALORES (no claves) en mi base de datos. El problema es que mi función devuelve la tab antes de .forEach . ¿Por qué sé eso? El resultado de My console.log(tab) se imprime antes de console.log(cards) para cada iteración. Mi intérprete también me dice dentro de la función .forEach que "Promise returned from forEach argument is ignored" . ¿Qué he hecho mal allí? ¿Por qué async/await no funciona dentro .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) } });forEach no está diseñado para funcionar con funciones asíncronas. En su lugar, puede usar un bucle for ... of .
for(const key of keys){ const cards = await client.smembers(key) console.log(cards) tab.push(cards) }