当前位置:   article > 正文

web serial api使用reader.cancel后无法关闭串口port.close()被挂起_web serial.close 调用后串口还被占用

web serial.close 调用后串口还被占用

最近在开发网页串口配网工具,发现web serial api无法关闭串口,port.close()被挂起,具体发现的问题是这样,不知道大家遇到了没?我都到处百度,google还是没找到解决办法!

  1. if ("serial" in navigator) {
  2.       this.port = await navigator.serial.requestPort({});
  3.       await this.port.open({ baudRate: 921600});
  4.     this.reader = this.port.readable.getReader();
  5.       this.writer = this.port.writable.getWriter();
  6.       try {
  7.         if (this.port.readable.locked || this.port.writable.locked) {
  8.           this.reader.cancel(); //去掉这个立马可以关闭,否则port.close()挂起
  9.           this.reader.releaseLock();
  10.           this.writer.releaseLock();
  11.           console.log("读关闭1"+this.port.readable.locked);
  12.           console.log("写关闭1"+this.port.writable.locked);
  13.           console.log("等待关闭中1...");
  14.           await this.port.close();
  15.           console.log("串口已关闭1");
  16.         }else{
  17.           console.log("读关闭2"+this.port.readable.locked);
  18.           console.log("写关闭2"+this.port.writable.locked);
  19.           console.log("等待关闭中2...");
  20.           await this.port.close();
  21.           console.log("串口已关闭2");
  22.         }
  23.       } catch (error) {
  24.         console.log(error);
  25.       }
  26. }

就是去掉this.reader.cancel();    立马可以关闭,否则port.close()挂起!

我自己是打开串口后立马关闭串口,去测试的,中间没有其他影响这个!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/671483
推荐阅读
相关标签
  

闽ICP备14008679号