El método process.emitWarning() es una interfaz de programación de aplicaciones incorporada del módulo de proceso que se utiliza para enviar advertencias de proceso personalizadas o específicas de la aplicación.
Sintaxis:
process.emitWarning(warning[, options])
Parámetros: Esta función acepta el siguiente parámetro:
- advertencia: Se utiliza para indicar la advertencia que se va a emitir.
- options: Es un parámetro opcional, y puede tener las siguientes propiedades:
- tipo: se utiliza para indicar el tipo de advertencia que se emite cuando la advertencia está en forma de string.
- código: se utiliza para denotar un identificador único para la instancia de advertencia que se emite.
- ctor: es una función opcional que se usa para limitar el seguimiento de la pila generada cuando la advertencia está en forma de string.
- detalle: Se utiliza para agregar el texto adicional a incluir con el error.
Valor de retorno: este evento no devuelve nada más que una función de devolución de llamada para operaciones posteriores.
Ejemplo 1: el método process.emitWarning() pasa un objeto Error al controlador de advertencia mientras escucha el proceso.
index.js
console.log("Start ..."); // Use setInterval to keep the process running setInterval(() => { console.log("Working ..."); }, 1000); setTimeout(() => { process.emitWarning('Something happened!', { code: 'Custom_Warning', detail: 'Additional information about warning' }); }, 4000); // Start listening to the process process.on('warning', (warning) => { // If there is a warning then print // it and stop the process if (warning) { console.log(warning); process.exit(0); } });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Inicio…
Trabajando…
Trabajando…
Trabajando…
(Node:12621) [Custom_Warning] Advertencia: ¡Algo sucedió!
Información adicional sobre la advertencia
(Use `node –trace-warnings…` para mostrar dónde se creó la advertencia)
Advertencia: ¡Algo sucedió!
en Timeout._onTimeout (/home/aditya/Programming/GFG/New/EmitWarning.js:9:13)
en listOnTimeout (node:internal/timers:556:17)
en processTimers (node:internal/timers:499:7) {
código: ‘Advertencia_personalizada’,
detalle: ‘Información adicional sobre la advertencia’
}
Ejemplo 2: Emita varias advertencias y tome medidas según el tipo de advertencia.
index.js
console.log("Start ..."); // Use setInterval to keep the process running setInterval(() => { console.log("Working ..."); }, 1000); setTimeout(() => { process.emitWarning('Something happened!', { code: 'Custom_Warning', detail: 'Additional information about warning' }); }, 4000); setTimeout(() => { process.emitWarning('Something needs to be fixed!', { type: 'IMPORTANT', code: '007', detail: 'Can not proceed further!' }); }, 6000); // Start listening to the process process.on('warning', (warning) => { // If there is an important warning // stop the process // warning.name = type if (warning.name === 'IMPORTANT') { console.log('Fix this ASAP!') process.exit(0); } });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Inicio…
Trabajando…
Trabajando…
Trabajando…
(Node:12893) [Custom_Warning] Advertencia: ¡Algo sucedió!
Información adicional sobre la advertencia
(Use `node –trace-warnings…` para mostrar dónde se creó la advertencia)
Trabajando…
Trabajando…
(Node:12893) [007] IMPORTANTE: ¡Algo necesita ser arreglado!
¡No se puede continuar!
¡Arregla esto lo antes posible!
Ejemplo 3: pasar un objeto de error como advertencia en lugar de una string. Observe que si se pasa el objeto Error, los parámetros opcionales se ignoran.
index.js
console.log("Start ..."); // Use setInterval to keep the process running setInterval(() => { console.log("Working ..."); }, 1000); setTimeout(() => { process.emitWarning(new Error('Whoops!'), { code: 'Custom_Warning', detail: 'Additional information about warning' }); }, 4000); // Start listening to the process process.on('warning', (warning) => { // If there is a warning then print // it and stop the process if (warning) { console.warn(warning); process.exit(0); } });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Inicio…
Trabajando…
Trabajando…
Trabajando…
(Node:13232) Error: ¡Vaya!
(Use `node –trace-warnings…` para mostrar dónde se creó la advertencia)
Error: ¡Vaya!
en Timeout._onTimeout (/home/aditya/Programming/GFG/New/EmitWarning.js:9:25)
en listOnTimeout (Node:internal/timers:556:17)
en processTimers (Node:internal/timers:499:7)
Referencia: https://nodejs.org/api/process.html#process_process_emitwarning_warning_type_code_ctor
Publicación traducida automáticamente
Artículo escrito por adityapande88 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA