Oye, estoy usando la promesa de obtener 2 llamadas API diferentes, que devuelven archivos con datos similares/coincidentes.
Estoy tratando de usar una de las llamadas API para mostrar un par de números (saldo de 2 billeteras), que funcionó bien cuando solo había una llamada API, lo estaba haciendo así:
const rewardWallet = data.result[0]; const rewardBalance = rewardWallet.balance;Entonces, data.result[0] estaba seleccionando resultado, y luego la primera matriz (0) y luego los datos de 'saldo'. Pero ahora que hay 2 llamadas a la API, el 'resultado' está por debajo de '0' y no sé cómo seleccionar el nivel superior.
Vínculo a las devoluciones de la API de resultados
Agregué la segunda llamada API así:
Promise.all([ fetch('https://api.bscscan.com/api?module=account&action=balancemulti&address=0xa3968Fba9D45D52b6b978f575934364ac2d5774c,0x121F0a592a25A52E8834C87005CbF4db000010Af&tag=latest&apikey=key'), fetch('https://api.bscscan.com/api?module=account&action=tokenbalance&contractaddress=0x7b50c95f065dc48a0ecf8e5f992bf9bb9f4299c5&address=0x121F0a592a25A52E8834C87005CbF4db000010Af&tag=latest&apikey=key') ]).then(function (responses) { return Promise.all(responses.map(function (response) { return response.json(); })); }).then(function (data) { console.log(data); }).catch(function (error) { console.log(error); });Agradezco cualquier ayuda.
Puede usar Promise.all para asegurarse de que la solicitud se active y luego trabajar con la respuesta después de que se hayan resuelto todas las promesas. Vea a continuación, he agregado algunas funciones simuladas que simulan las llamadas a la API que solo devolverán un objeto con una cantidad.
const fetchWalletOne = () => { return new Promise((resolve) => { resolve({ amount: 1 }); }); }; const fetchWalletTwo = () => { return new Promise((resolve) => { resolve({ amount: 5 }); }); }; async function getData() { const [walletOne, walletTwo] = await Promise.all([ fetchWalletOne(), fetchWalletTwo() ]); console.log(walletOne, walletTwo); console.log(walletOne.amount + walletTwo.amount); } getData();