El método writable._write() es una interfaz de programación de aplicaciones incorporada del módulo Stream que se utiliza para implementar un flujo grabable. El método writable._write() se adjunta con un guión bajo, ya que está dentro de la clase que lo define. Además, el programa de usuario no debe llamarlo directamente. Este método se implementa mediante el uso de clases secundarias y solo lo llaman los métodos internos de la clase Writable.
Sintaxis:
writable._write( chunk, encoding, callback )
Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:
- chunk: Son los datos a escribir los cuales pueden ser de tipo buffer, string o cualquiera.
- encoding: Es el tipo de codificación a utilizar si el chunk es de tipo string.
- devolución de llamada: es un método que se llama para verificar si la escritura se completó o falló. El primer argumento pasado a la devolución de llamada debe ser el objeto «Error» si la llamada no tuvo éxito y nulo si la escritura tuvo éxito.
Los siguientes ejemplos ilustran el uso del método writable._write() Node.js:
Ejemplo 1:
// Node.js program to demonstrate the // writable._write() method // Constructing writable stream const {Writable} = require("stream"); // Function to check char const charchecks = new Writable({ // Implementing write function write(chunk, encoding, callback){ // Defining string const string = chunk.toString(); // If string contains below character // then an error is show else the // written string is returned if(string.includes("\/")){ callback(Error("Forbidden character")); } else { // Displays string console.log(string); callback(); } } }); // Piping standard input to standard output, if // you don't enter the forbidden character else // it throws error process.stdin.pipe(charchecks).on('error', console.log); // Enter the string to be written console.log("Enter the string: ");
Ahora, debe ejecutar el código e ingresar la string en tiempo de ejecución para obtener el resultado.
Enter the string: GeeksforGeeks GeeksforGeeks // Output Enter the string: GfG GfG // Output Enter the string: Nidhi Nidhi //Output
Ahora, para salir, debe presionar control + C.
Ejemplo 2:
// Node.js program to demonstrate the // writable._write() method // Constructing writable stream const {Writable} = require("stream"); // Function to check char const charchecks = new Writable({ // Implementing write function write(chunk, encoding, callback){ // Defining string and encoding it const string = chunk.toString('hex'); // Prints encoded string console.log(string); // If the encoded string contains below // character then an error is shown else // the length of the encoded string is // returned if(string.includes("c")){ callback(Error("This is an error.")); } else { // Displays length of the encoded string console.log(string.length); callback(); } } }); // Piping standard input to standard output, if // you don't enter the forbidden character else // it throws an error process.stdin.pipe(charchecks).on('error', console.log); // Enter the string to be written console.log("Enter the string: ");
Ahora, debe ejecutar el código e ingresar la string en tiempo de ejecución para obtener el resultado.
Producción:
Enter the string: Geeks 4765656b730a // encoded string 12 // length of encoded string Nidhi 4e696468690a 12 portal 706f7274616c0a // encoded string contains "c" so length of it // is not returned and an error is thrown Error: This is an error. at Writable.write [as _write] (/home/runner/QuickwittedDistantCensorware/index.js:25:16) at doWrite (_stream_writable.js:415:12) at writeOrBuffer (_stream_writable.js:399:5) at Writable.write (_stream_writable.js:299:11) at ReadStream.ondata (_stream_readable.js:710:20) at ReadStream.emit (events.js:198:13) at ReadStream.EventEmitter.emit (domain.js:448:20) at addChunk (_stream_readable.js:288:12) at readableAddChunk (_stream_readable.js:269:11) at ReadStream.Readable.push (_stream_readable.js:224:10)
Ahora, para salir, debe presionar el control C.
Entonces, aquí se arroja un error ya que la entrada de tiempo de ejecución incluye el carácter indicado que es un carácter prohibido, por lo que se arroja un error.
Referencia: https://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback_1
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA