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

162
Views
Haga un ciclo de espera de 2 segundos después de buscar cada 5 páginas

Quiero que la llamada del script espere 2 segundos después de cada 5 páginas.

Mis requisitos son que el ciclo for debe esperar 2 segundos cuando pageData.Number llegue a la página 5. Básicamente, el ciclo debe esperar 2 segundos después de cada 5 páginas.

No estoy seguro de cómo verificar si la página llega a la página 5 y esperar 2 segundos.

 for (var i = 1; i <= pageData.Number; i++) { var pageRequest = $.getJSON(URL, function (data) { if (i % 5 == 0) { sleep(5000); } /* .... */ }).fail(function () { errorPage.push(i); }); } // from https://www.sitepoint.com/delay-sleep-pause-wait/ function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Así es como podría hacerlo: con async/await y sin jQuery.

 /** * @summary waits a specified number of seconds * @param {number} [seconds] seconds to wait * @returns {Promise<void>} * @link https://github.com/samliew/se-electionbot/blob/master/src/bot/utils.js#L910 */ const wait = (seconds = 1) => new Promise((r) => setTimeout(r, seconds * 1e3)); /** * Your main function, async */ (async function () { const errorPage = []; const pageData = { Number: 10, }; // Test URL const url = 'https://reqbin.com/echo/get/json'; for (let i = 1; i <= pageData.Number; i++) { // Fetch url const data = await fetch(url).then(response => // Convert data to json, or return null on error response.ok ? response.json() : errorPage.push(i) && null ); // Data exists if(data) { // Do something with data console.log(`Request ${i} completed.`); } // Short wait after every fifth request if (i % 5 === 0) { console.log('Waiting for 2 seconds...'); await wait(2); } } console.log('Done!'); })();

about 4 years ago · Juan Pablo Isaza Report

0

Creo que necesitas algo como esto. Utiliza el operador de resto de JavaScript y una función de suspensión personalizada.

 for (var i = 1; i <= pageData.Number; i++) { //setTimeout(func, 2000); var pageURL = Url + "?startDate=" + moment(startDate).format(dateFormat) + "&endDate=" + moment(endDate).add(1, 'day').format(dateFormat) + "&pageNumber=" + i; var pageRequest = $.getJSON(URL, function (data) { if (i % 5 == 0) { sleep(2000); } } // from https://www.sitepoint.com/delay-sleep-pause-wait/ function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); }

about 4 years ago · Juan Pablo Isaza 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!