Node.js Proceso multipleResolves Evento

El ‘multipleResolves’ es un evento de clase Process dentro del módulo de proceso que se emite cada vez que una Promesa ha sido:

  • Resuelto más de una vez.
  • Rechazado más de una vez.
  • Rechazado después de resolver.
  • Resuelto tras rechazo.

Sintaxis:

Event: 'multipleResolves'

Parámetros: Este evento no acepta ningún argumento como parámetro.

Valor de retorno : este evento no devuelve nada más que una función de devolución de llamada para una operación posterior.

Ejemplo 1: 

index.js

// Node.js program to demonstrate the  
// Process 'multipleResolves' Event
  
// Importing process module
const process = require('process');
  
// Independent Block which will execute
setTimeout(() => {
   console.log('\n')
   console.log('Greetings from GeeksforGeeks');
}, 1000);
  
// Event 'multipleResolves' 
process.on('multipleResolves', (type, promise, reason) => {
  
   // Displaying the error 
   console.log("Type: ", type);
   console.log("Promise: ", promise);
   console.log("Reason: ", reason);
});
  
const myFunction = async () => {
   const data = await new Promise((resolve, reject) => {
  
      // Calling reject after multiple resolve
      resolve('Resolve Call One');
      resolve('Resolve Call Two');
      resolve('Resolve Call Three');
      reject(new Error('Reject Error Called'));
   });
   return data
}
  
// Calling our function
myFunction().then();

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

Tipo: resolver
Promesa: Promesa { ‘Resolver llamada uno’ }
Motivo: Resolver llamada dos
Tipo: resolver
Promesa: Promesa { ‘Resolver llamada uno’ }
Motivo: Resolver llamada tres
Tipo: rechazar
Promesa: Promesa { ‘Resolver llamada uno’ }
Motivo : Error: error de rechazo llamado
en los datos (C:\Users\Lenovo\Downloads\GeeksforGeeks\Node JS\index.js:27:14)
en la nueva Promesa (<anónimo>)
en myFunction (C:\Users\Lenovo\Downloads \GeeksforGeeks\Node JS\index.js:22:23)
en Object.<anónimo> (C:\Users\Lenovo\Downloads\GeeksforGeeks\Node JS\index.js:33:1)
en Module._compile (interno/ módulos/cjs/loader.js:1138:30)
en Object.Module._extensions..js (interno/modules/cjs/loader.js:1158:10)
en Module.load (internal/modules/cjs/loader.js:986:32)
en Function.Module._load (internal/modules/cjs/loader.js:879:14)
en Function.executeUserEntryPoint [como runMain] (interno /modules/run_main.js:71:12)
en internal/main/run_main_module.js:17:47

Saludos desde GeeksforGeeks

Ejemplo 2: 

index.js

// Node.js program to demonstrate the  
// Process 'multipleResolves' Event
  
// Importing process module
const process = require('process');
  
// Event 'multipleResolves' 
process.on('multipleResolves', (type, promise, reason) => {
  
   // Displaying the error 
   console.log("Type: ", type);
   console.log("Promise: ", promise);
   console.log("Reason: ", reason);
});
  
const myFunction = async () => {
   const data = await new Promise((resolve, reject) => {
  
      // Calling reject after resolve
      resolve('Single Resolve call');
      reject(new Error('Custom Reason'));
   });
   return data
}
  
// Calling our function
myFunction().then();

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

Tipo: rechazar
Promesa: Promesa { ‘Llamada de resolución única}
Motivo: Error: Motivo personalizado
en los datos (C:\Users\Lenovo\Downloads\GeeksforGeeks\Node JS\index.js:19:14)
en la nueva Promesa (<anónimo> )
en myFunction (C:\Users\Lenovo\Downloads\GeeksforGeeks\Node JS\index.js:16:23)
en Object.<anónimo> (C:\Users\Lenovo\Downloads\GeeksforGeeks\Node JS\index.js :25:1)
en Module._compile (internal/modules/cjs/loader.js:1138:30)
en Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
en Module .load (internal/modules/cjs/loader.js:986:32)
en Function.Module._load (internal/modules/cjs/loader.js:879:14)
en Function.executeUserEntryPoint [como runMain] (internal/modules /ejecutar_principal.js:71:12)
en interno/principal/ejecutar_principal_module.js:17:47

Referencia: https://nodejs.org/dist/latest-v16.x/docs/api/process.html#process_event_multipleresolves

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 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 *