ReadableStreamDefaultReader

ReadableStreamDefaultReader é um leitor padrão usado para ler dados de um stream vindos de uma rede, como em requisições fetch.

Em contraste com um ReadableStreamBYOBReader, que só funciona caso a stream tenha uma fonte de bytes, o ReadableStreamDefaultReader pode ser usado para qualquer tipo de fonte de Readable Stream.

ReadableStreamDefaultReader() Cria e retorna uma instância do objeto ReadableStreamDefaultReader.

ReadableStreamDefaultReader.closed Retorna uma Promise que se realiza quando a stream fechar, ou rejeita caso a stream retorne um erro ou o lock do reader é ativado. Essa propriedade habilita a produção de códigos que respondem a uma ponta do processo de streaming.

ReadableStreamDefaultReader.cancel() Retorna uma Promise que se realiza quando uma stream é cancelada. Quando esse método é chamado, sinaliza que o consumidor perdeu o interesse na stream. O motivo será retornado para a origem.

ReadableStreamDefaultReader.read() Retorna uma promise que permite o acesso ao próximo carregamento na fila interna da stream

ReadableStreamDefaultReader.releaseLock() Libera o processamento de leitura da stream.

No exemplo a seguir, uma resposta artificial é criada para fazer uma stream de fragmentos de HTML vindos de outra fonte para o navegador.

fetch("https://www.example.org/").then((response) => {
const reader = response.body.getReader();
const stream = new ReadableStream({
start(controller) {
// A função a seguir lida com os blocos de dados
function push() {
// "done" é um boolean e um valor "Uint8Array"
return reader.read().then(({ done, value }) => {
if (done) {
// Avisa o navegador que terminou o processo
controller.close();
return;
}
// Pega os dados e envia para o navegador
controller.enqueue(value);
push();
});
};
push();
}
});
return new Response(stream, { headers: { "Content-Type": "text/html" } });
});

Para mais informações sobre ReadableStreamDefaultReader visite MDN Web Docs.


Contribuidores