Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

311
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda