# ReadableStream

A interface ReadableStream é um recurso da API Streams que permite a leitura de streams de dados de bytes. A API Fetch fornece uma instância específica de um ReadableStream que pode ser acessada por meio da propriedade "body" de um objeto Response.

## Construtor

[ReadableStream()](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/ReadableStream)
Cria e retorna um objeto readable stream dos handlers fornecidos.

## Propriedades

[ReadableStream.locked](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/locked)
Retorna um booleano indicando se a readable stream está ou não presa a um reader.

## Métodos

[ReadableStream.cancel()](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/cancel)
Retorna uma Promise que resolve quando a stream é cancelada. Chamar este método sinaliza uma perda de interesse na stream por um consumidor. O argumento do motivo fornecido será dado à fonte subjacente, que pode ou não usá-lo.

[ReadableStream.getReader()](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/getReader)
Cria um reader e prende o fluxo a ele. Enquanto a stream está bloqueada, nenhum outro reader pode ser adquirido até que esta seja liberada.

[ReadableStream.pipeThrough()](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/pipeThrough)
Fornece uma maneira de canalizar o fluxo atual através de uma transform stream ou qualquer outro par writable/readable.

[ReadableStream.pipeTo()](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/pipeTo)
Canaliza o ReadableStream atual para um determinado WritableStream e retorna uma Promise que é cumprida quando o processo de *piping* é concluído com êxito ou rejeita se algum erro for encontrado.

[ReadableStream.tee()](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee)
O método tee traz essa readable stream, retornando um array de dois elementos contendo as duas ramificações resultantes como novas instâncias de ReadableStream. Cada uma dessas streams recebe os mesmos dados.

## Iteração assíncrona

ReadableStream implementa o [protocolo iterável assíncrono](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_async_iterator_and_async_iterable_protocols). Isso permite a iteração assíncrona sobre os pedaços em uma stream usando a sintaxe [for await...of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of)

Para mais informações sobre [o ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream), visite MDN Web Docs.





---