未定义TextDecoderStream

问题描述

我正在从Google Codelab示例Getting started with the Web Serial API中学习

该示例存在故障,因此我重新混合了代码并按照说明进行操作,并复制并粘贴了这些代码

let decoder = new TextDecoderStream();
inputDone = port.readable.pipeTo(decoder.writable);
inputStream = decoder.readable;

reader = inputStream.getReader();
readLoop();

然后我没有定义'TextDecoderStream'。

解决方法

如果不支持,则可以进行多边形填充 https://developer.mozilla.org/en-US/docs/Web/API/TransformStream

const tds = {
  start(){
    this.decoder = new TextDecoder(this.encoding,this.options)
  },transform(chunk,controller) {
    controller.enqueue(this.decoder.decode(chunk))
  }
}
let _jstds_wm = new WeakMap(); /* info holder */
class TextDecoderStream extends TransformStream {
  constructor(encoding = 'utf-8',{...options} = {}) {
    let t = {...tds,encoding,options}

    super(t)
    _jstds_wm.set(this,t)
  }
  get encoding() {return _jstds_wm.get(this).decoder.encoding}
  get fatal() {return _jstds_wm.get(this).decoder.fatal}
  get ignoreBOM() {return _jstds_wm.get(this).decoder.ignoreBOM}
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...