Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

363
Views
¿Cómo escribo un código para que una función se ejecute aleatoriamente cada 10 minutos en react js?

Supongamos que ahora mismo son las 13:04. Primero, el espacio de 10 minutos es de 1:04 p. m. a 1:14 p. m., la captura de pantalla se tomará en cualquier momento aleatoriamente entre la 1:04 p. m. y la 1:14 p. m. y una vez que lleguemos a la 1:14 p. 14 p. m. a 1:24 p. m. y se toma una captura de pantalla aleatoria entre 1:14 p. m. y 1:24 p. m. ¿Cómo logro esto? Soy un principiante y estoy luchando por construir la lógica requerida.

Quiero hacer cambios en setTimeout para que se ejecute aleatoriamente en cualquier momento en un lapso de 10 minutos, tal como funciona el rastreador de pantalla de Upwork.

Aquí está mi código.

 const uploadFiles = (img) => { // logic const storageRef = ref(storage, `/screenshots/${uuidv4()}`); uploadString(storageRef, img, "data_url").then((snapshot) => { console.log("Uploaded a data_url string!"); }); }; let newTimeoutId; const screenshot = async () => { setTimeoutId(true); const newTimeoutId = setTimeout(async () => { const screenshotData = await ipcRenderer.invoke("capture"); const string = new Buffer.from(screenshotData).toString("base64"); const img = `data:image/png;base64,${string}`; console.log(img); uploadFiles(img); screenshot(); }, 600000); }; const stopScreenshot = () => { setTimeoutId(false); clearTimeout(newTimeoutId); };
about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Esto debería dar una idea de una posible forma de lograr lo que se desea:

Ejecute una función/lógica en un momento aleatorio, cada 10 minutos.

Fragmento de código

 let stopAt = 15; // for testing, setting a maximum of 15 iterations let maxRandomDelay = 1000; // max 1 second delay for testing // for 10 minutes, make it 10 * 60 * 1000 const resDiv = document.getElementById("rd"); resDiv.innerText = 'display at random intervals: '; const delay = async(ms) => new Promise(res => setTimeout(() => { res(ms); }, ms)); const myTimer = () => { delay(Math.floor(Math.random() * maxRandomDelay)) .then((r) => { resDiv.innerText += `\n..${stopAt} (random-wait: ${r} ms).. `; // instead of the above line, invoke your desired function here }).then(() => { if (stopAt-- > 0) myTimer(); }) }; myTimer();
 <div id="rd" />

about 4 years ago · Santiago Trujillo Report

0

También soy realmente nuevo en js, pero tal vez podrías usar Math.random.

¿algo como esto?:

Matemáticas.piso((Matemáticas.aleatorio() * 600000) + 1);

devuelve un número entre 1 y 600000

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!