SerialPort: метод close()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Примечание: Эта функция доступна в посвящённых веб-воркерах.
Метод SerialPort.close() интерфейса SerialPort возвращает Promise, который разрешается при закрытии порта.
Описание
close() закрывает последовательный порт, если предварительно заблокированные члены SerialPort.readable и SerialPort.writable разблокированы, то есть вызваны соответствующие методы releaseLock() для читателя и записывателя.
Однако, при непрерывном чтении данных с последовательного устройства с помощью цикла связанный потоковый объект для чтения всегда будет заблокирован, пока читатель не столкнётся с ошибкой. В этом случае вызов reader.cancel() заставит reader.read() немедленно разрешиться со значением { value: undefined, done: true }, что позволит циклу вызвать reader.releaseLock().
// Without transform streams.
let keepReading = true;
let reader;
async function readUntilClosed() {
while (port.readable && keepReading) {
reader = port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) {
// reader.cancel() has been called.
break;
}
// value is a Uint8Array.
console.log(value);
}
} catch (error) {
// Handle error...
} finally {
// Allow the serial port to be closed later.
reader.releaseLock();
}
}
await port.close();
}
const closedPromise = readUntilClosed();
document.querySelector("button").addEventListener("click", async () => {
// User clicked a button to close the serial port.
keepReading = false;
// Force reader.read() to resolve immediately and subsequently
// call reader.releaseLock() in the loop example above.
reader.cancel();
await closedPromise;
});
Закрытие последовательного порта осложняется при использовании потоковых объектов преобразования. Для получения руководства см. Закрытие последовательного порта.
Синтаксис
close()
Параметры
Нет.
Возвращаемое значение
A Promise.
Спецификации
| Спецификация |
|---|
| Web Serial API # dom-serialport-close |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
close |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SerialPort/close