Streaming

Consume y cuenta bytes del flujo de demo de este sitio. Este código mínimo de navegador no analiza NDJSON.

import { Http, bare } from "fetchzen";
const api = Http.create(`${location.origin}/api/examples/`, {
cache: false, secure: false, preset: bare,
});
const stream = await api.get<ReadableStream<Uint8Array> | null>("stream", {
responseType: "stream",
});
if (!stream) throw new Error("No response stream");
const reader = stream.getReader();
let bytes = 0;
try {
while (true) {
const { value, done } = await reader.read();
if (done) break;
bytes += value.byteLength;
if (bytes > 65_536) throw new Error("Stream limit exceeded");
console.log(bytes);
}
} finally {
try { await reader.cancel(); }
finally { reader.releaseLock(); }
}
Prueba la solicitudNDJSON incremental

Solo Ejecutar envía una solicitud a la API de demostración de este sitio. Usa solo datos sintéticos; no envíes secretos ni archivos personales. Se cuentan los bytes de los archivos; no se almacenan.

Listo. No se ha enviado ninguna solicitud.

Resultado

Elige Ejecutar para ver la respuesta.
Registro de eventos
Todavía no hay eventos.

El panel agrega análisis NDJSON acotado de aplicación para seis registros, con UTF-8 y líneas divididas y vaciado del decodificador. NDJSON no es un analizador integrado; los bloques no necesariamente contienen registros completos. La compatibilidad depende del entorno. Los cuerpos de solicitud en streaming son distintos: el cliente agrega duplex: "half" si se omite, pero algunos navegadores los rechazan.

Continúa con descarga o transferencias de archivos.