该应用程序是一个 Angular 应用程序,在 Chrome/Edge/Mogilla 中,浏览器要求我连接到设备。 这是我的代码:
connect() {
if (!this.port) {
this.serial.connect((port: any) => {
this.port = port;
});
}
}
电子抛出:
main.b0202a271531c6f7.js:1 Requesting port error: NotFoundError: Failed to execute 'requestPort' on 'Serial': No port selected by the user.
有什么建议吗?
问题出在
ngx-serial
项目内部,当我单击连接然后没有选择任何端口并给出取消时,我能够复制该问题,这应该在 github 存储库中引发一个错误,在检查错误,它看起来像一个非阻塞错误,这意味着,即使收到此错误,您仍然可以工作。
对于这个错误,没有什么办法,除了在 github 上提出问题,来处理用户没有选择任何端口的情况!
public async connect(callback:Function) {
this.keepReading = true;
if ("serial" in navigator) {
// The Web Serial API is supported by the browser.
let nav: any = navigator;
const ports = await nav.serial.getPorts();
try {
this.port = await nav.serial.requestPort();
} catch (error) {
console.error("Requesting port error: " + error); // <-------------------- problem here!
return;
}
try {
await this.port.open(this.options);
} catch (error) {
console.error("Opening port error: " + error);
return;
}
const textEncoder = new TextEncoderStream();
this.writableStreamClosed = textEncoder.readable.pipeTo(this.port.writable);
this.writer = textEncoder.writable.getWriter();
this.readLoop();
callback(this.port);
} else {
console.error("This browser does NOT support the Web Serial API");
}
}
}