Skip to content

Commit 7acd1bc

Browse files
KirtiRamchandanihamishwillee
authored andcommitted
Clarify WebTransport datagram writable support
docs: update WebTransport datagram writable example
1 parent 89ea635 commit 7acd1bc

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

  • files/en-us/web/api

files/en-us/web/api/webtransport/datagrams/index.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,20 @@ A {{domxref("WebTransportDatagramDuplexStream")}} object.
2020

2121
### Writing an outgoing datagram
2222

23-
The {{domxref("WebTransportDatagramDuplexStream.writable")}} property returns a {{domxref("WritableStream")}} object that you can write data to using a writer, for transmission to the server:
23+
Use the `createWritable()` method if it is supported. Otherwise, fall back to the {{domxref("WebTransportDatagramDuplexStream/writable", "writable")}} property {{deprecated_inline}} {{non-standard_inline}}, which returns a {{domxref("WritableStream")}} object that you can write data to using a writer, for transmission to the server:
2424

2525
```js
26-
const writer = transport.datagrams.writable.getWriter();
26+
const writableStream =
27+
typeof transport.datagrams.createWritable === "function"
28+
? transport.datagrams.createWritable()
29+
: transport.datagrams.writable; // Deprecated and non-standard.
30+
31+
const writer = writableStream.getWriter();
2732
const data1 = new Uint8Array([65, 66, 67]);
2833
const data2 = new Uint8Array([68, 69, 70]);
34+
await writer.ready;
2935
writer.write(data1);
36+
await writer.ready;
3037
writer.write(data2);
3138
```
3239

files/en-us/web/api/webtransportdatagramduplexstream/index.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,21 @@ This is accessed via the {{domxref("WebTransport.datagrams")}} property.
3636

3737
### Writing outgoing datagrams
3838

39-
The {{domxref("WebTransportDatagramDuplexStream.writable", "writable")}} property returns a {{domxref("WritableStream")}} object that you can write data to using a writer, for transmission to the server:
39+
This code uses the `createWritable()` method, if it is supported, to get a {{domxref("WebTransportDatagramsWritable")}} instance that can be used for writing data to the transport.
40+
Otherwise, it falls back to the {{domxref("WebTransportDatagramDuplexStream/writable", "writable")}} property {{deprecated_inline}} {{non-standard_inline}}, which returns a {{domxref("WritableStream")}} object that you can use instead:
4041

4142
```js
42-
const writer = transport.datagrams.writable.getWriter();
43+
const writableStream =
44+
typeof transport.datagrams.createWritable === "function"
45+
? transport.datagrams.createWritable()
46+
: transport.datagrams.writable; // Deprecated and non-standard.
47+
48+
const writer = writableStream.getWriter();
4349
const data1 = new Uint8Array([65, 66, 67]);
4450
const data2 = new Uint8Array([68, 69, 70]);
51+
await writer.ready;
4552
writer.write(data1);
53+
await writer.ready;
4654
writer.write(data2);
4755
```
4856

0 commit comments

Comments
 (0)