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

194
Visualizações
¿Cómo debo usar fetch con contenido parcial 206 (json)?

Tengo un backend que devuelve archivos grandes como fragmentos de contenido parcial 206. yo tenia logica:

 fetch(url, query) .then((resp)=>resp.json()) .then(...)

pero, sorprendentemente, el código falla porque el servidor no devuelve el objeto json completo.

¿Hay alguna biblioteca de uso común para resolver esto (búsqueda de parche de mono) o debería escribir un trabajador de servicio o un proxy para esto? ¿Por qué la fetch predeterminada del navegador no admite la búsqueda del objeto completo?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No sorprende que el análisis de JSON falle en un objeto parcial. fetch solo obtendrá lo que le pidas (bueno, sigue las redirecciones), por lo que si la query tiene opciones para solicitar una respuesta parcial, eso es lo que obtendrás.

Puede construir la cadena JSON hasta que tenga la respuesta completa para analizar, algo así:

 async function getAll() { // Start with a blank string let json = ""; do { // Get this chunk const resp = await fetch(url, /*...query for next chunk...*/); if (!resp.ok && resp.status !== 206) { throw new Error(`HTTP error ${resp.status}`); } // Read this chunk as text and append it to the JSON json += await resp.text(); } while (resp.status === 206); return JSON.parse(json); }

Obviamente, ese es un boceto aproximado, deberá manejar el encabezado Range , etc.

Ese código también solicita cada fragmento en serie , esperando que llegue el fragmento antes de solicitar el siguiente. Si sabe de antemano cuál es el tamaño del fragmento, es posible que pueda paralelizarlo, aunque será más complicado con los fragmentos que posiblemente lleguen fuera de secuencia, etc.

También asume que el servidor no te lanza una bola curva, como darte un rango más amplio del que pediste que se superpone con lo que ya has recibido. Si esa es una preocupación genuina, deberá agregarle lógica.

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