![](/img/trans.png)
[英]Multiple API calls to initialize JSON and use that JSON throughout the system
[英]How to pick which JSON file to use from multiple API calls
嘿,我正在使用 promise 来获取 2 个不同的 API 调用,它们都返回具有相似/匹配数据的文件。
我正在尝试使用其中一个 API 调用来显示几个数字(2 个钱包的余额),当只有一个 API 调用时效果很好,我这样做是这样的:
const rewardWallet = data.result[0];
const rewardBalance = rewardWallet.balance;
因此,data.result[0] 正在选择结果,然后是第一个数组 (0),然后是“余额”中的数据。 但是现在有 2 个 API 调用,“结果”在“0”之下,我不知道如何 select 到达顶层。
我添加了第二个 API 调用,如下所示:
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);
});
感谢任何帮助。
您可以查看Promise.all
以确保请求被触发,然后在所有承诺解决后处理响应。 见下文,我添加了一些模拟函数来模拟 API 调用,这些调用将只返回一个带有数量的 object。
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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.