Birden çok API çağrısından hangi JSON dosyasının kullanılacağını seçme

0

Soru

Hey, her ikisi de benzer/eşleşen verilere sahip dosyaları döndüren 2 farklı API çağrısı almak için promise kullanıyorum.

API çağrılarından birini, yalnızca bir API çağrısı olduğunda iyi çalışan birkaç numarayı (2 cüzdan bakiyesi) görüntülemek için kullanmaya çalışıyorum, bunu şöyle yapıyordum:

const rewardWallet = data.result[0];
const rewardBalance = rewardWallet.balance;

Ee data.sonuç [0] sonucu ve ardından ilk diziyi (0) ve ardından 'denge'verisini seçiyordu. Ama şimdi 2 API çağrısı var, 'sonuç '' 0 ' altında ve en üst seviyeyi nasıl seçeceğimi anlayamıyorum.

Sonuç API'sine bağlantı döndürür

Bunun gibi ikinci API çağrısını ekledim:

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);
});

Herhangi bir yardım için teşekkür ederiz.

api fetch fetch-api javascript
2021-11-22 12:22:47
1

En iyi cevabı

0

Görebilirsiniz Promise.all talebin iptal edilmesini sağlamak ve tüm vaatler çözüldükten sonra yanıtla çalışmak. Aşağıya bakın, yalnızca bir nesneyi bir miktarla döndürecek API çağrılarıyla alay eden bazı sahte işlevler ekledim.

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();
2021-11-22 12:28:02

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................