Método Node.js process.emitWarning()

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *