Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

230
Vistas
¿Hay alguna forma de hacer que mi código espere unos segundos antes de ejecutar el siguiente fragmento de código? (Solicitudes API por límite de segundo)

setTimeout() no parece funcionar, y he leído por qué y lo entiendo. Algo acerca de que es asíncrono, por lo que no retrasa la ejecución de las otras funciones en su código. Entonces, ¿cómo puedo hacer que espere unos segundos antes de enviar otro axios.request? Y la razón por la que pregunto sobre esto es porque la API que estoy solicitando solo permite una solicitud por segundo.

 setTimeout(function () { axios.request(options).then(function (response) { for (let i = 0, l = response.data["result"].length; i < l; i++) { var obj = response.data.result; console.log(response.data.result[i].hash); } options.params.term = obj[1].hash options.params.func = 'dehash' setTimeout(function () { axios.request(options).then(function (response2) { message.reply(termargs + " passwords:" + '`' + JSON.stringify(response2.data.found) + '`'); }); }, 1250); options.params.term = obj[2].hash setTimeout(function () { axios.request(options).then(function (response3) { message.reply(termargs + " passwords:" + '`' + JSON.stringify(response3.data.found) + '`'); }); }, 1250); options.params.term = obj[3].hash setTimeout(function () { axios.request(options).then(function (response4) { message.reply(termargs + " passwords:" + '`' + JSON.stringify(response4.data.found) + '`'); }); }, 1250); }).catch(function (error) { message.reply("There was an error!" + '`' + 'Couldnt find user.' + '`'); console.log(error); }); }, 1250);

Voy a reiterar el hecho de que soy nuevo en Javascript, y esto de la función de no esperar realmente hace que se me encojan los dedos de los pies, ya que lo uso todo el tiempo en el otro lenguaje de programación llamado Lua.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Una vez que esté ejecutando funciones asíncronas, necesitará usar async/await para hacer eso, setTimeout/Sleep no funcionará.

si desea que una solicitud finalice al pasar al siguiente código, puede hacerlo de esta manera:

 async function funcName(){ const result = await axios.request(options).then(function (response2) { message.reply(termargs + " passwords:" + '`' + JSON.stringify(response2.data.found) + '`'); }); const result2 = await axios.request(options).then(function (response2) { message.reply(termargs + " passwords:" + '`' + JSON.stringify(response2.data.found) + '`'); }); } funcName();

en este ejemplo primero terminará el resultado 1, luego irá a resolver el resultado 2...

Aquí están los documentos: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea utilizar setTimeout, debe buscar el hilo que he vinculado este hilo.

Si no te funciona, también puedes probar el método de suspensión.

 sleep(ms).then(() => { })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda