SerialPort: close()-Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die SerialPort.close()-Methode der SerialPort-Schnittstelle gibt ein Promise zurück, das aufgelöst wird, wenn der Port geschlossen wird.
Syntax
close()
Parameter
Keine.
Rückgabewert
Ein Promise.
Beschreibung
close() schließt den seriellen Port, wenn die zuvor gesperrten Mitglieder SerialPort.readable und SerialPort.writable entsperrt sind, was bedeutet, dass die releaseLock()-Methoden für ihren jeweiligen Leser und Schreiber aufgerufen wurden.
Allerdings wird beim kontinuierlichen Lesen von Daten von einem seriellen Gerät in einer Schleife der zugehörige lesbare Strom immer gesperrt bleiben, bis der Leser auf einen Fehler stößt. In diesem Fall wird das Aufrufen von reader.cancel() dafür sorgen, dass reader.read() sofort mit { value: undefined, done: true } aufgelöst wird, sodass die Schleife reader.releaseLock() aufrufen kann.
// 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;
});
Das Schließen eines seriellen Ports ist komplizierter, wenn Transformströme verwendet werden. Siehe Schließen eines seriellen Ports für eine Anleitung.
Spezifikationen
| Spezifikation |
|---|
| Web Serial API> # dom-serialport-close> |