Я использую setInterval, но при первом вызове мне нужно сразу его вызвать
Вы должны вызвать его вручную, а также вызвать его на setInterval
.
let dofetch = async () => {
const res = await fetch(
"https://api.coindesk.com/v1/bpi/currentprice.json"
);
const exRates = await res.json();
console.log(exRates.bpi);
this.setState({ exRates: exRates.bpi });
}
setInterval(dofetch, 6000);
dofetch()
Я теряю часть чисел, например, вместо получения 11518,6217 я получаю только 11
Ваши строковые числа отформатированы как ,
, вы должны удалить его перед их передачей в функцию parseFloat
.
parseFloat('11,518.6217') // 11
parseFloat('11,518.6217'.split(',').join('')) // 11.518.6217
Поэтому измените:
currData.map(parseFloat);
на:
currData.map(s => parseFloat(s.split(',').join('')));