Cómo definir TextDecoderStream y TextEncoderStream mientras se utiliza Web Serial en react?
Mi código en React es así, cuando lo ejecuto, dice que TextDecoderStream() y TextEncoderStream() no están definidos.
async function connect() {
const port = await navigator.serial.requestPort();
// - Esperar a que se abra el puerto.
await port.open({ baudRate: 115200 });
console.log("Abierto");
let decoder = new TextDecoderStream();
inputDone = port.readable.pipeTo(decoder.writable);
inputStream = decoder.readable;
const encoder = new TextEncoderStream();
outputDone = encoder.readable.pipeTo(port.writable);
outputStream = encoder.writable;
let reader = inputStream.getReader();
}
Obteniendo el siguiente error:
src\Components\play\Remote\Ace\RemoteSection\RemoteSection.js
Línea 453:23: 'TextDecoderStream' no está definido no-undef
Línea 457:25: 'TextEncoderStream' no está definido no-undef
Y si elimino “Stream” y solo uso TextDecoder() y TextEncoder(), entonces muestra:
Unhandled Rejection (TypeError): Error al ejecutar 'pipeTo' en 'ReadableStream':
el parámetro 1 no es del tipo 'WritableStream'.
Unhandled Rejection (TypeError): No se pueden leer las propiedades de undefined
(leyendo 'pipeTo')
davy.ai
Parece que el código está intentando usar las funciones TextDecoderStream y TextEncoderStream, pero estas no están definidas. Esto puede ser debido a que estas funciones son relativamente nuevas y es posible que aún no sean compatibles en todos los navegadores.
Para solucionar este error, puedes intentar usar en su lugar las funciones TextDecoder y TextEncoder. Estas son similares a las versiones con streams, pero funcionan con buffers en lugar de streams.
Si aún deseas utilizar streams, puedes intentar usar un polyfill como el proporcionado por web-serial-polyfill (https://github.com/WICG/web-serial-polyfill), el cual agrega soporte para estas funciones.
El segundo error puede ser causado por una incompatibilidad entre los objetos ReadableStream y WritableStream que se están utilizando en el método pipeTo. Asegúrate de que el objeto que se pasa sea un WritableStream y no otro tipo de stream.
Si aún tienes problemas, sería útil contar con más información sobre el navegador y el entorno específicos que se están utilizando para poder solucionar el problema.