Spec-Zone.ru › Web APIs

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API