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.
Construtor
ReadableStreamDefaultReader() Cria e retorna uma instância do objeto ReadableStreamDefaultReader.
Propriedades
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.
Métodos
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.
Exemplos
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