ReadableStreamBYOBReader
A interface ReadableStreamBYOBReader do Azion Runtime: o construtor, a propriedade closed e os métodos que leem um stream de bytes para o seu buffer.
A interface ReadableStreamBYOBReader faz parte da Streams API do Azion Runtime. Ela lê um stream de bytes para um buffer que você fornece, sem copiar os dados. Use-a para transferir dados de fontes que os entregam como uma série de bytes anônimos, como arquivos. BYOB significa “Bring Your Own Buffer” (traga o seu próprio buffer). Para mais informações, consulte ReadableStreamBYOBReader na MDN Web Docs.
Construtor
O construtor ReadableStreamBYOBReader() cria e retorna um reader para o stream que você passa para ele:
Você também pode criar o reader a partir do stream: chame getReader() em um ReadableStream e defina mode: 'byob' nas opções. Os exemplos desta página criam o stream como um stream de bytes, com type: 'bytes' nos handlers.
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
closed | Promise | É cumprida quando o stream é encerrado. É rejeitada quando o stream lança um erro ou quando o reader libera o bloqueio. Use-a para executar código quando o stream termina. |
Métodos
| Método | Descrição |
|---|---|
reader.cancel(reason) | Retorna uma promise que resolve quando o stream é cancelado. Uma chamada sinaliza que o consumidor perdeu o interesse no stream. A fonte subjacente recebe reason e pode usá-lo ou ignorá-lo. |
reader.read(view) | Recebe uma view na qual o stream escreve os dados, como um Uint8Array. Retorna uma promise que resolve com o próximo chunk do stream, ou que é rejeitada quando o stream está encerrado ou tem um erro. |
reader.releaseLock() | Libera o bloqueio do reader sobre o stream. |
Exemplos
Este handler constrói um stream de bytes que contém 5 bytes, cria um BYOB reader com getReader() e lê o stream para um buffer de 8 bytes. Ele retorna o nome da classe do reader e o resultado de read():
A function retorna estes valores. A view retornada contém os 5 bytes que o stream escreveu, e não os 8 bytes completos do buffer:
Para ler um stream chunk por chunk para um único buffer, chame read() de novo a partir do resultado de cada leitura, com uma view da parte do buffer que ainda está vazia. Neste exemplo, stream é um stream de bytes de 10 bytes e buffer comporta 4.000 bytes: