USBDevice: clearHalt() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

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
# dom-usbdevice-clearhalt

瀏覽器相容性