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

116
Visualizações
Cómo implementar la continuación del punto de interrupción cuando varias API de búsqueda funcionan al mismo tiempo

Necesito solicitar un archivo grande en partes y construir una nueva secuencia legible a partir de la respuesta.

Al principio, solo solicitaba un dato a la vez y, sobre esta base, me di cuenta de la continuación del punto de interrupción para hacer frente a la inestabilidad de la red.

 let _this = this let responseList = [] let response = null let reader = null let offset = 0 let start = 0 let end = start + this.RANGE_SIZE return new ReadableStream({ async start(controller) { responseList.push(await fetch(_this.url, {responseType: 'blob', headers: {range: `bytes=${start}-${end}`}})) reader = responseList[0].body.getReader() }, async pull(controller) { try { var {done, value} = await reader.read() } catch (e) { let errorOffset = 0 responseList[0] = await fetch(_this.url, {responseType: 'blob', headers: {range: `bytes=${start}-${end}`}}) reader = responseList[0].body.getReader() while (true) { let {done, value} = await reader.read() if (errorOffset + value.length > offset){ value = value.slice(offset - errorOffset) controller.enqueue(value) return }else { errorOffset += value.length } } } if (done) { offset = 0 start = end + 1 end += _this.RANGE_SIZE responseList.shift() responseList.push(await fetch(_this.url, {responseType: 'blob', headers: {range: `bytes=${start}-${end}`}})) reader = responseList[0].body.getReader() const {done, value} = await reader.read() controller.enqueue(value) offset += value.length } else { controller.enqueue(value) offset += value.length } } })

Pero ahora quiero descargar dos segmentos al mismo tiempo para mejorar la eficiencia de la descarga.

 async start(controller) { responseList.push(await fetch(_this.url, {responseType: 'blob', headers: {range: `bytes=${start}-${end}`}})) start = end + 1 end += _this.RANGE_SIZE responseList.push(await fetch(_this.url, {responseType: 'blob', headers: {range: `bytes=${start}-${end}`}})) reader = responseList[0].body.getReader() },

En este caso, no puedo saber si el segundo lector ha fallado. intentar... atrapar... no funciona.

Hay alguna manera de resolver este problema

about 4 years ago · Santiago Gelvez
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