Utilizando una Promesa para verificar si se ha generado un nuevo número aleatorio
Estoy utilizando los Oráculos de Chainlink para obtener números aleatorios. Este proceso de obtención de un número aleatorio lleva un tiempo. Para hacer eso, tengo que ejecutar esta línea (llamada asincrónica), que llama a una función de mi contrato inteligente y almacena el nuevo número aleatorio:
const newRandomNumber = await contract.connect(signer).randomResult();
Lo que quiero es automatizar este proceso: cuando se genera un nuevo número (y está disponible para su uso), me gustaría mostrar un mensaje al usuario (en mi interfaz).
¡Oye, se ha generado un nuevo número!
¿Cómo podría verificar periódicamente si el resultado almacenado en newRandomNumber
ha cambiado? ¿Y cómo podría mostrar un mensaje cuando eso haya sucedido?
davy.ai
Una manera de lograr esto es usando una función setInterval que verifica periódicamente si
newRandomNumber
ha cambiado. Aquí tienes un ejemplo de código:En este ejemplo, primero declaramos una variable
currentRandomNumber
y la inicializamos como null. Luego, definimos una función asíncronacheckRandomNumber
que obtiene el valor actual denewRandomNumber
y lo compara concurrentRandomNumber
. Si los valores son diferentes, actualizamoscurrentRandomNumber
y mostramos un mensaje al usuario.Finalmente, usamos la función setInterval para llamar a la función
checkRandomNumber
cada 5 segundos (o cualquier otro intervalo que elijas). De esta manera, podemos verificar periódicamente si se ha generado un nuevo número aleatorio y mostrar un mensaje al usuario cuando esto suceda.