# WritableStreamDefaultWriter

**WritableStreamDefaultWriter** é uma interface que é invocada por [WritableStream.getWriter()](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream/getWriter).

## Construtor

[WritableStreamDefaultWriter()](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/WritableStreamDefaultWriter)
Cria uma nova instância do objeto WritableStreamDefaultWriter.

## Propriedades

[WritableStreamDefaultWriter.closed](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/closed)
Permite o desenvolvimento de códigos que respondem a uma ponta do processo de *stream*. Retorna uma *promise* que se concretiza quando uma *stream* é fechada, ou uma rejeição caso ocorra algum erro.

[WritableStreamDefaultWriter.desiredSize](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/desiredSize)
Retorna o tamanho definido para a fila interna da *stream*.

[WritableStreamDefaultWriter.ready](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/ready)
Retorna uma *promise* que se resolve quando o tamanho desejado da fila interna da stream muda de *não positivo* para *positivo*, sinalizando que não está mais aplicando contrapressão.

## Métodos

[WritableStreamDefaultWriter.abort()](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/abort)
Aborta a stream.

[WritableStreamDefaultWriter.close()](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/close)
Fecha a writable stream associada.

[WritableStreamDefaultWriter.releaseLock()](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/releaseLock)
Libera a stream correspondente.

[WritableStreamDefaultWriter.write](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter/write)
Escreve um bloco de dados para uma WritableStream.

## Example

O exemplo a seguir mostra a criação de uma `WritableStream`:

```js
 const list = document.querySelector('ul');

 function sendMessage(message, writableStream) {
   // defaultWriter é do tipo WritableStreamDefaultWriter
   const defaultWriter = writableStream.getWriter();
   const encoder = new TextEncoder();
   const encoded = encoder.encode(message, { stream: true });
   encoded.forEach((chunk) => {
     defaultWriter.ready
       .then(() => defaultWriter.write(chunk))
       .then(() => {
         console.log("Chunk written to sink.");
       })
       .catch((err) => {
         console.log("Chunk error:", err);
       });
   });
   defaultWriter.ready
     .then(() => {
       defaultWriter.close();
     })
     .then(() => {
       console.log("All chunks written");
     })
     .catch((err) => {
       console.log("Stream error:", err);
     });
 }

 const decoder = new TextDecoder("utf-8");
 const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });
 let result = "";
 const writableStream = new WritableStream({
   write(chunk) {
     return new Promise((resolve, reject) => {
       const buffer = new ArrayBuffer(1);
       const view = new Uint8Array(buffer);
       view[0] = chunk;
       const decoded = decoder.decode(view, { stream: true });
       const listItem = document.createElement('li');
       listItem.textContent = `Chunk decoded: ${decoded}`;
       list.appendChild(listItem);
       result += decoded;
       resolve();
     });
   },
   close() {
     const listItem = document.createElement('li');
     listItem.textContent = `[MESSAGE RECEIVED] ${result}`;
     list.appendChild(listItem);
   },
   abort(err) {
     console.log("Sink error:", err);
   }
 }, queuingStrategy);

 sendMessage("Hello, world.", writableStream);
```

---

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





---