Estoy tratando de llamar a una función en bucle y hacer una solicitud https, la respuesta vuelve a la función y devuelve :
{"_U": 0, "_V": 0, "_W": null, "_X": null}
Quiero devolver el valor exacto a esa tecla donde se llama a la función en el bucle.
Aquí está mi código :
res.forEach(async (elem, index) => { await arr.push({ id: index, name: '', color: '#2F14A8', chain: elem.chain, address: elem.walletAddress, balance: getWalletBalance(elem.walletAddress), //<---- **function call** img: images[index % images.length], }); });Aquí está la función :
const getWalletBalance =async address => { let tokensArr=[] // some arry const res = await dispatch(getBalanc(address, tokensArr)); return res; }¿Cuál es la respuesta de res en la función getWallertBalance ? ¡Creo que si pones esperar antes getWalletBalance(elem.walletAddress) en forEach se resuelve el problema!
Esas llamadas individuales a getWalletBalance no parecen depender unas de otras. La mejor manera de hacer esto es producir una colección de promesas con map , y resolverlas al mismo tiempo...
const getWalletBalance = async address => { const res = await dispatch(getBalanc(address, tokensArr)); const promises = res.map(element => getWalletBalance(elem.walletAddress)); const balances = await Promise.all(promises); return res.map((element, index) => { return { id: index, name: '', color: '#2F14A8', chain: element.chain, address: element.walletAddress, balance: balances[i], img: images[index % images.length], }; }) }