1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

doc

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.


Não encontrou o que procurava? Abra um ticket.