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
TransformStreamquando você precisa reescrever ou filtrar um payload enquanto ele passa por uma function. - Canalizar dados de um
ReadableStreamde 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.