
Javascript no actualiza valores de una api
Publicado por Leonardo (14 intervenciones) el 02/08/2024 17:27:39
tengo una api de criptoya la cual me debería dar actualizado el mayor valor de venta para la cripto solana entre varios exchanges en dolares es decir de los dos valores que presenta el sitio web para solana uno es $ 211.768 y el otro US$ 1.314,02, el que yo quiero obtener actualizado es US$ 1.314,02, el tema es que el javascript me da el monto que quiero pero cuando este se actualiza en criptoya no se actualiza en el sitio web donde quiero implementarlo que es https://sites.google.com/view/estudiocontablebaca/?pli=1. Lo que necesito es que cuando el usuario ingresa al sitio https://sites.google.com/view/estudiocontablebaca/?pli=1 elija entre 2 valores, 35 o 50, presione calcular y le de como resultado el producto entre el valor elegido, 35 o 50 y el valor que devuelve la api. Al no actualizarse el valor de la api este resultado no coincide con el que resultaria de multiplicar alguno de los dos valores por el mayor monto de venta en dólares.El código con el que estoy trabajando es este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculadora de Solana</title>
</head>
<body>
<h1>Calculadora de Solana</h1>
<label for="coin">Selecciona una criptomoneda:</label>
<select id="coin">
<option value="35">35</option>
<option value="50">50</option>
</select>
<button onclick="calcularValor()">Calcular</button>
<p id="resultado"></p>
<script>
async function obtenerDatosAPI() {
const fiat = "ars"; // Moneda en la que queremos obtener el valor
const timestamp = new Date().getTime(); // Para evitar caché
const response = await fetch(`https://criptoya.com/api/sol/${fiat}?t=${timestamp}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
}
async function calcularValor() {
const coin = document.getElementById("coin").value;
const volumen = parseFloat(coin); // Convertimos el valor seleccionado a número
try {
const data = await obtenerDatosAPI();
console.log(data); // Verifica la estructura de la respuesta en la consola
// Encontrar el valor más alto de totalBid
let maxTotalBid = 0;
for (const exchange in data) {
if (data[exchange].totalBid > maxTotalBid) {
maxTotalBid = data[exchange].totalBid;
}
}
// Suponiendo que el tipo de cambio es 1304.92 (esto debería ser dinámico según la API)
const tipoDeCambio = 1304.92;
if (!isNaN(maxTotalBid)) {
const resultado = volumen * tipoDeCambio;
document.getElementById("resultado").textContent = `Resultado: $${resultado.toFixed(2)}`;
} else {
document.getElementById("resultado").textContent = "Error: Valor de Solana no es numérico.";
}
} catch (error) {
console.error("Error al obtener la cotización de Solana:", error);
document.getElementById("resultado").textContent = "Error al obtener la cotización de Solana.";
}
}
// Actualizar la información cada 60 segundos
setInterval(calcularValor, 60000);
</script>
</body>
</html>
Valora esta pregunta


0