Método Node.js util.promisify()

El método util.promisify() se define en el módulo de utilidades de la biblioteca estándar de Node.js. Básicamente se usa para convertir un método que devuelve respuestas usando una función de devolución de llamada para devolver respuestas en un objeto de promesa. Por lo general, muy pronto se vuelve muy difícil trabajar con devoluciones de llamada debido al anidamiento de devoluciones de llamada o al infierno de devoluciones de llamada. Se vuelve muy difícil organizar o formatear nuestro código para que otros desarrolladores, si trabajan con ese código, puedan entenderlo fácilmente. Por otro lado, es muy fácil tratar con promesas ya que las promesas anidadas también funcionan en estilo lineal, es decir, enstringmiento de promesas. El método util.promisify() hace esto por nosotros y hace que el método funcione con promesas.

Sintaxis:

util.promisify(func)

Parámetros: este método acepta una función de parámetro único que contiene la función basada en devolución de llamada.

Valor de retorno: este método devuelve una función basada en promesas.

Ejemplo 1:

// Node.js program to illustrate 
// util.promisify() methods
  
// Importing Utilities module
const util = require('util')
  
// Importing File System module
const fs = require('fs')
  
// Use promisify to convert callback
// based method fs.readdir to 
// promise based method
const readdir = util.promisify(fs.readdir)
  
readdir('process.cwd()')
  .then(files => {
    console.log(files)
  })
  .catch(err => {
    console.log(err)
  })

Producción:

[Error: ENOENT: no such file or directory, 
scandir 'C:\Users\bhudk\Desktop\nodec\process.cwd()'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'scandir',
  path: 'C:\\Users\\bhudk\\Desktop\\nodec\\process.cwd()'
}

Ejemplo 2:

// Node.js program to illustrate 
// util.promisify() methods
  
// Since promisify function 
// returns promise version 
// of a function, it can also
// operate using async and await
   
// Importing Utilities module
const util = require('util')
   
// Importing File System module
const fs = require('fs')
   
// Use promisify to convert callback
// based method fs.readdir to 
// promise based method
const readdir = util.promisify(fs.readdir)
   
const readFiles = async (path) => {
    const files = await readdir(path)
    console.log(files)
  }
   
  readFiles(process.cwd()).catch(err => {
    console.log(err)
  })

Producción:

Ejemplo 3:

// Node.js program to illustrate 
// util.promisify() methods
  
// Importing Utilities module
const util = require('util')
  
importing File System module
const fs = require('fs')
  
// Use promisify to convert 
// callback based methods to 
// promise based methods
const readdir = util.promisify(fs.readdir)
const lstat = util.promisify(fs.lstat)
  
  
const readFiles = async (path) => {
  const files = await readdir(path)
  for (let file of files) {
    const stats = await lstat(file)
    if (stats.isFile()) {
      console.log(`${file} -----> File`)
    } else {
      console.log(`${file} -----> Folder`)
    }
  }
}
  
readFiles('process.cwd()').catch(err => {
  console.log(err)
})

Producción:

Referencia: https://nodejs.org/api/util.html#util_util_promisify_original

Publicación traducida automáticamente

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