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

214
Vistas
Obtener FastApi StreamedResponse a través de JS

Estoy tratando de buscar y consolar mis datos transmitidos desde FastApi a través de StreamedResponse usando fetch pero no puedo hacerlo funcionar. Chrome dice Cannot read properties of null (reading 'getReader') porque response.body es nulo. ¿Qué estoy haciendo mal?

Servidor

 async def foo(): for i in range(5): time.sleep(1) yield b'foobar' @app.get('/bar') async def bar(): return StreamingResponse(foo(), media_type='text/plain')

cliente

 async function buttonclick() { let url = 'http://localhost:8000/bar'; let options = { mode: 'no-cors', method: 'GET' } fetch(url, options) .then(processChunkedResponse) .then(onChunkedResponseComplete) .catch(onChunkedResponseError); } function onChunkedResponseComplete(result) { console.log('all done!', result) } function onChunkedResponseError(err) { console.error(err) } function processChunkedResponse(response) { var text = ''; var reader = response.body.getReader() var decoder = new TextDecoder(); return readChunk(); function readChunk() { return reader.read().then(appendChunks); } function appendChunks(result) { var chunk = decoder.decode(result.value || new Uint8Array, {stream: !result.done}); console.log('got chunk of', chunk.length, 'bytes') text += chunk; console.log('text so far is', text.length, 'bytes\n'); if (result.done) { console.log('returning') return text; } else { console.log('recursing') return readChunk(); } } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Un Request.mode no-cors devuelve una respuesta opaca y "JavaScript no puede acceder a ninguna propiedad de la respuesta resultante". Su servidor puede proporcionar el encabezado Access-Control-Allow-Origin y el cliente debe usar un cors fetch estándar.

Además, es posible que deba realizar este cambio para garantizar que se devuelva una Promesa:

 if (result.done) { //return text return Promise.resolve(text) }
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