簡體   English   中英

為什么Web Streams API缺少Duplex Stream?

[英]Why does Web Streams API lack Duplex Stream?

我熟悉“舊”nodejs stream,因此雙工流“可讀和可寫的流(例如,.net.Socket)”的需求似乎很明顯。

報價

雙工流的示例包括:

  1. TCP sockets
  2. zlib 流
  3. 加密流

在研究nodejs18新特性的時候,發現nodejs已經添加了Web Streams API 我有點驚訝地看到 web 流只有3 種流類型,即它缺少Duplex stream。我注意到這是因為https://streams.spec.whatwg.org/只定義了 3 種類型的流。 但為什么? 可讀可寫 stream 的需求不是很明顯嗎?

雙工 stream 是任何 object,其readable屬性為ReadableStreamwritable屬性為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM