赞
踩
最近在开发网页串口配网工具,发现web serial api无法关闭串口,port.close()被挂起,具体发现的问题是这样,不知道大家遇到了没?我都到处百度,google还是没找到解决办法!
- if ("serial" in navigator) {
- this.port = await navigator.serial.requestPort({});
- await this.port.open({ baudRate: 921600});
- this.reader = this.port.readable.getReader();
- this.writer = this.port.writable.getWriter();
- try {
- if (this.port.readable.locked || this.port.writable.locked) {
- this.reader.cancel(); //去掉这个立马可以关闭,否则port.close()挂起
- this.reader.releaseLock();
- this.writer.releaseLock();
- console.log("读关闭1"+this.port.readable.locked);
- console.log("写关闭1"+this.port.writable.locked);
- console.log("等待关闭中1...");
- await this.port.close();
- console.log("串口已关闭1");
- }else{
- console.log("读关闭2"+this.port.readable.locked);
- console.log("写关闭2"+this.port.writable.locked);
- console.log("等待关闭中2...");
- await this.port.close();
- console.log("串口已关闭2");
- }
- } catch (error) {
- console.log(error);
- }
- }
就是去掉this.reader.cancel(); 立马可以关闭,否则port.close()挂起!
我自己是打开串口后立马关闭串口,去测试的,中间没有其他影响这个!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。