繁体   English   中英

如何从多个 API 调用中选择要使用的 JSON 文件

[英]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 返回

我添加了第二个 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM