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

307
Vistas
Enviar una serie de solicitudes de API por lotes

Buscando un enfoque eficaz para enviar más de 1000 solicitudes en lotes, por ejemplo, 6 en paralelo, y cuando estas 6 se hayan completado, envíe las siguientes 6

El envío por lotes evitará que la cola de solicitudes del navegador bloquee por completo cualquier otra solicitud de API que pueda ocurrir mientras las llamadas por lotes están en curso.

He hecho esto anteriormente con RxJS (ejemplo a continuación), pero me pregunto si existe un enfoque basado en Promise de fetch equivalente.

 // Array of observables const urls = [ this.http.get('url1'), this.http.get('url2'), this.http.get('url3'), ... ]; bufferedRequests(urls) { from(urls).pipe( bufferCount(6), concatMap(buffer => forkJoin(buffer)) ).subscribe( res => console.log(res), err => console.log(err), () => console.log('complete') ); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Usé cuello de botella hace un tiempo.

Le permite embotellar sus solicitudes con un limitador de tasa del lado del cliente. Puede elegir cuántas solicitudes enviar por minuto y cuántas simultáneas se pueden ejecutar también.

Puede configurar un limiter :

 const limiter = new Bottleneck({ maxConcurrent: 1, minTime: 333 //this will execute 3 requests every second, aka wait 333 ms to execute the next request });

luego envuelve tu función con ella.

 const wrapped = limiter.wrap(myFunction); wrapped(arg1, arg2) .then((result) => { /* handle result */ });

En su caso, escribiría una función que se ajuste a las solicitudes de búsqueda y devuelva una promesa. Luego, envolvería eso con el limitador. Aquí hay un ejemplo:

 const throttledGetMyData = limiter.wrap(yourFetchFunction); const allThePromises = requests.map(item => { return throttledGetMyData(request); }) try { const results = await Promise.all(allThePromises); console.log(results); } catch (err) { console.log(err); } }
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