[whatwg/streams] Proposal: writev equivalent `WritableStreamDefaultWriter` (Issue #1309)

### What problem are you trying to solve?

Today, writing multiple values at once to a `WritableStream` is not generally possible or efficient. Each individual call to `write(...)` assumes a single value, with a single promise returned per value.

### What solutions exist today?

Node.js `stream.Writable` offers both `write(...)` and `writev(...)` options. The `write(...)` takes a single value while `writev(...)` takes multiple.

### How would you solve it?

Introduce a new `writev(...)` method to `WritableStreamDefaultWriter` (or something similar)

So instead of something like...

```
const writable = getWritableStreamSomehow();
const writer = writable.getWriter();
await Promise.all([
  writer.write('hello'),
  writer.write('world'),
  writer.write('!!!'),
]);  // Creates at least four promises...
```

We could simply (and efficiently do)

```js
const writable = getWritableStreamSomehow();
const writer = writable.getWriter();
await writer.writev(['hello', 'world', '!!!']);  // Creates only one promise
```

The `writev(...)` method would accept any iterable or async-iterable as the input.


### Anything else?

_No response_

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/issues/1309
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/streams/issues/1309@github.com>

Received on Saturday, 23 March 2024 21:03:34 UTC