USBDevice: clearHalt() 方法

可用性有限

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法正常工作。

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细检查 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,并且在某些或所有 支持的浏览器 中可用。

clearHalt()USBDevice 接口的方法,它返回一个 promise,当清除停止条件时,该 promise 会被解决。停止条件是指设备数据传输的状态为 'stall',这需要网页(在 USB 术语中为主机系统)来清除该条件。有关详细信息,请参阅。

语法

js
clearHalt(direction, endpointNumber)

参数

direction

指示应清除设备的输入还是输出。有效值为 'in''out'

endpointNumber

指示要清除的端点的编号。如果提供了无效的端点,则 promise 将被拒绝。

返回值

一个 promise

示例

以下示例演示了如何在数据传输结果中测试和清除 'stall' 条件。

注意: 可以传递给 USB 设备的数据以及传递方式对于每个设备都是特定且唯一的。

js
while (true) {
  let result = await data.transferIn(1, 6);

  if (result.data && result.data.byteLength === 6) {
    console.log(`Channel 1: ${result.data.getUint16(0)}`);
    console.log(`Channel 2: ${result.data.getUint16(2)}`);
    console.log(`Channel 5: ${result.data.getUint16(4)}`);
  }

  if (result.status === "stall") {
    console.warn("Endpoint stalled. Clearing.");
    await device.clearHalt("in", 1);
  }
}

规范

规范
WebUSB API
# ref-for-dom-usbdevice-clearhalt①

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。