[英]Why does Web Streams API lack Duplex Stream?
我熟悉“舊”nodejs stream,因此雙工流“可讀和可寫的流(例如,.net.Socket)”的需求似乎很明顯。
雙工流的示例包括:
- TCP sockets
- zlib 流
- 加密流
在研究nodejs18新特性的時候,發現nodejs已經添加了Web Streams API 。 我有點驚訝地看到 web 流只有3 種流類型,即它缺少Duplex stream。我注意到這是因為https://streams.spec.whatwg.org/只定義了 3 種類型的流。 但為什么? 可讀可寫 stream 的需求不是很明顯嗎?
雙工 stream 是任何 object,其readable
屬性為ReadableStream
, writable
屬性為WritableStream
。 由於在 JavaScript 中創建具有兩個屬性的對象很容易(使用語法{ readable, writable }
),因此不需要 class 或其他助手。 所以標准不包括一個。
該標准在https://streams.spec.whatwg.org/#other-specs-duplex中提供了更多相關信息。
我現在只是在研究這個,是的,對於 web 流,沒有與Duplex
等效的東西,但是您可以通過執行以下操作來創建自己的流:
class MyStream<R = any, W = any> implements ReadableWritablePair<R, W> {
public readable: ReadableStream<R>;
public writable: WritableStream<W>;
public constructor() {
this.readable = new ReadableStream();
this.writable = new WritableStream();
}
}
然后獨立實施每一方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.