es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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')
Tags:  , , , ,

Answer

  1. Avatar for 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.

Comments are closed.