A interface WritableStream é uma parte da API Streams que fornece uma maneira padronizada de gravar dados de streaming em uma sink (ou destino). Ela vem com seu próprio mecanismo de fila e backpressure para garantir que os dados sejam escritos de maneira eficiente.

Em uma function da Azion, uma WritableStream permite produzir a saída de forma incremental, em vez de armazenar uma resposta inteira em memória. Isso é especialmente útil ao canalizar ou transformar grandes payloads, porque o backpressure embutido evita que a função sobrecarregue o destino enquanto os dados fluem próximos ao usuário final.

Construtor

WritableStream() Cria um novo objeto writable.

Propriedades

WritableStream.locked Um booleano que indica se a WritableStream está presa a um writer.

Métodos

WritableStream.abort() Aborta a stream, sinalizando que o produtor não pode mais gravar com sucesso na stream e deve ser imediatamente movido para um estado de erro, com qualquer gravação na fila descartada.

WritableStream.close() Fecha o fluxo.

WritableStream.getWriter() Retorna uma nova instância de WritableStreamDefaultWriter e bloqueia o fluxo para essa instância. Enquanto a stream está bloqueada, nenhum outro writer pode ser adquirido até que este seja liberado.

Casos de uso

  • Transmitir um corpo de resposta grande ou gerado dinamicamente ao cliente em pedaços, em vez de mantê-lo todo em memória.
  • Atuar como a extremidade gravável de um TransformStream quando você precisa reescrever ou filtrar um payload enquanto ele passa por uma function.
  • Canalizar dados de um ReadableStream de upstream para uma sink enquanto o backpressure embutido ajusta o produtor ao ritmo do consumidor.
  • Abortar uma gravação em andamento com abort() quando ocorre um erro, descartando de forma limpa a saída parcial ou inválida.

Recursos relacionados

Para mais informações sobre o WritableStream, visite MDN Web Docs.