es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for 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:

    let currentRandomNumber = null;
    
    // Función para verificar si newRandomNumber ha cambiado
    async function checkRandomNumber() {
        const randomNumber = await contract.connect(signer).randomResult();
        if (randomNumber !== currentRandomNumber) {
            currentRandomNumber = randomNumber;
            // Mostrar un mensaje al usuario
            console.log("¡Hey, se ha generado un nuevo número!");
        }
    }
    
    // Llamar a la función checkRandomNumber cada 5 segundos (o cualquier otro intervalo que elijas)
    setInterval(checkRandomNumber, 5000);
    

    En este ejemplo, primero declaramos una variable currentRandomNumber y la inicializamos como null. Luego, definimos una función asíncrona checkRandomNumber que obtiene el valor actual de newRandomNumber y lo compara con currentRandomNumber. Si los valores son diferentes, actualizamos currentRandomNumber 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.

Comments are closed.