Firefox v57 WritableStream

时间:2019-01-29 13:20:17

标签: javascript firefox whatwg-streams-api

Streams API是一种与浏览器中可能无限的数据流进行交互的好方法。 ReadableStreams特别为您提供了表示潜在无限数据源的方法; “处理”是逐块完成的。

WritableStreams是该概念的双重含义-表示可以消耗无限数据块的 sink 。此外,还有一个附加的undocumented on MDN概念称为TransformStream。这只是两者的组合-代表数据的逐块转换。

我的问题很简单-当Chrome甚至IE edge支持Firefox时,为什么不放弃实现WritableStream API?是否有不执行该命令的特定哲学原因?特别是,我发现流的ByteStream变体(在规范apparently中尚未充实)。

1 个答案:

答案 0 :(得分:0)

没有哲学上的原因,我认为只是一个务实的原因。与在 fetch response API 中使用的 ReadableStream 不同,没有标准的 Web API 使用 WritableStream 模式(以它自己的 new WritableStream() 构造函数为模,它现在主要用作 JS 通过管道读取流的工具)。

这在两个方面很重要。第一个是优先考虑资源(欢迎补丁!)

第二个是实现使用 WritableStream 模式的浏览器 API 有助于确保该模式的良好实现,该模式仍然相对较新。字节流尤其需要高性能。

正在跟踪 Firefox 中对 WritableStream 的支持 here

一些新的基于 WritableStream 的 Web API 正在 W3C 中标准化,并且可能会改变 Firefox 中的情况。但它们仍处于早期阶段。其中两个是:

  1. The WebTransport API(在 WICG 中孵化了很长时间)。 Firefox 支持跟踪 here
  2. WebRTC 编码的媒体 RTCRtpScriptTransform 流(又名“可插入流”)。

Chrome 和 Edge 在首选项后面有 WebTransport 的实验性实现,这可能与它们早期支持 WritableStream 相关。