JSFiddle - React, Tailwind, and code Playground

by borisjavier

JavaScript

async function rateXau() {
        let GDN = 0;
        await fetch('https://openexchangerates.org/api/latest.json?app_id=8d926de9f1604f1d9617d492ca1323c4&base=USD&symbols=XAU')        
        .then(res => res.json())
        .then(res => {
        const xauUSD = 1 / parseFloat(res.rates['XAU']);
        GDN = (xauUSD / 31.1035).toFixed(2);//troy ounce to gram  
        //console.log('GDN: ', GDN);          
    })   
    return GDN;      
}


const getBSVPriceUSD = async () => {
    try {
        const response = await fetch('https://api.whatsonchain.com/v1/bsv/main/exchangerate', {
            timeout: 10000 // Tiempo de espera en milisegundos (10 segundos en este caso)
        });

        if (!response.ok) {
            throw new Error('Error al llamar a la API: ' + response.statusText);
        }

        const data = await response.json();
        return parseFloat(data.rate).toFixed(2);
    } catch (error) {
        console.error('Error al obtener el precio de BSV en USD:', error);
        throw error; // Propaga el error para manejarlo fuera de esta función si es necesario
    }
};

/*async function rates () {
      const rateX = await rateXau();
            //console.log('rateXau: ', rateX);
      const rateB = await getBSVPriceUSD();
            //console.log('rateBSV: ', rateB);
      const GNBSV = (parseFloat(rateX)/parseFloat(rateB));
            //console.log('GNBSV: ', GNBSV);
      const result = {GNBSV, rateB, rateX};
      console.log("Rates result: ", result)
      return result;
    }*/
    
const rates = async () => {
      const rateX = await rateXau();
            console.log('rateXau: ', rateX);
      const rateB = await getBSVPriceUSD();
            console.log('rateBSV: ', rateB);
      const GNBSV = (parseFloat(rateX)/parseFloat(rateB));
            console.log('GNBSV: ', GNBSV);
      const result = {GNBSV, rateB, rateX};
            console.log("Rates result: ", result)
      return result;
    }
    


rates().then(result => {
 ...