首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待WebHID响应准备就绪

等待WebHID响应准备就绪
EN

Stack Overflow用户
提问于 2022-07-27 11:59:16
回答 1查看 109关注 0票数 2

我使用device.sendReport(reportID,dataBuffer) of WebHID向目标设备发送数据,但是在响应准备好之前尝试读取响应(即响应需要时间)。

现在,通过将超时设置为10 by,我能够得到响应。我想知道是否有更好的解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 06:54:48

您还没有说明设备是如何提供响应的,但我假设它是以输入报告的形式出现的。在这种情况下,sendReport()返回的sendReport()并不特别有趣,而是希望侦听将在HIDDevice中触发的inputreport事件。如果你想把它变成这样的Promise

代码语言:javascript
复制
const response = new Promise((resolve) => {
  device.addEventListener('inputreport', resolve, { once: true });
});
await device.sendReport(...your data...);
const { reportId, data } = await response;

一旦接收到响应,它将存储在data中。

请注意,这假定设备只在响应请求时生成输入报告。对于通信更加复杂的设备,您可能希望随时注册inputreport事件侦听器,并根据其报表ID或其他因素处理输入报告。HID不支持任何背压,因此如果设备发送报告时没有注册inputreport事件侦听器,则会丢弃该事件侦听器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73137521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档