--- title: USB.requestDevice() slug: Web/API/USB/requestDevice tags: - API - USB - WebUSB - WebUSB API - getDevices() - Определение - метод translation_of: Web/API/USB/requestDevice ---
{{APIRef("WebUSB API")}}{{SeeCompatTable}}{{securecontext_header}}
Метод requestDevice() интерфейса {{domxref("USB")}} возвращает {{jsxref("Promise")}}, возвращающий экземпляр {{domxref("USBDevice")}}, если необходимое устройство было найдено. Вызов этого метода начинает процесс соединения браузера с устройством.
USB.requestDevice([filters])
vendorId - ИД производителя (USB VID)productId - ИД устройства USB PIDclassCode - код класса функциональности устройстваsubclassCode - код подклассаprotocolCode - код протоколаserialNumber - серийный номер{{JSxRef("Promise")}}, возвращающий экземпляр {{DOMxRef("USBDevice")}}.
Этот пример запрашивает любое из перечисленных USB-устройств. Обратите внимание, указаны два разных PID. Оба присутствуют в списке фильтров для requestDevice(). При этом браузер покажет окно для выбора и подтверждения доступа к устройству. Только выбранное пользователем устройство будет передано в then().
Количество фильтров не определяет количество устройств, показываемых браузером. Например, если найдено только USB-устройство с product ID 0xa800, браузер отобразит только одно устройство. Но, если браузер определит два устройства, совпадающих с первым фильтром, и ещё одно, совпадающее со вторым, будут показаны все три устройства.
const filters = [
{vendorId: 0x1209, productId: 0xa800},
{vendorId: 0x1209, productId: 0xa850}
];
navigator.usb.requestDevice({filters: filters})
.then(usbDevice => {
console.log("Product name: " + usbDevice.productName);
})
.catch(e => {
console.log("There is no device. " + e);
});
{{Compat}}