¿Cómo convertir la llamada de función con la promesa de dos devoluciones de llamada en Node.js?

Promise: Promise se usa para manejar el resultado, si obtiene el resultado requerido, ejecuta el código del bloque , y si obtiene el error, ejecuta el código del bloque catch .

Una promesa se ve así:

function()
    .then(data => {
    
        // After promise is fulfilled
        console.log(data);
    })
    .catch(err => {
    
        // After promise is rejected
        console.error(err);
    });

Devolución de llamada: una devolución de llamada es el último argumento de una función. Se ejecutará para hacer algo con los valores que obtengamos de la función. Una llamada de función con dos devoluciones de llamada se ve así

fs.readFile('./hello.txt', ,'utf8', (err, data) => {
      if (err) {
          console.error(err);
            return;
      }
      console.log(data);
});

Esta es una función readFile del módulo del sistema de archivos. Se utiliza para leer los datos de un archivo. La función readFile puede llamar con dos parámetros: ruta de archivo, codificación de archivo y devoluciones de llamada. File-path es la ruta donde está presente su archivo y File Encoding es la codificación de ese archivo, por defecto es «utf8». Dentro de las devoluciones de llamada, verifique el error, si hay un error, registra el error, si no, registra el resultado.

Ejecutemos esta función primero: asegúrese de haber creado un archivo «hello.txt» con algún contenido, en este caso es ‘Hello World’.

 

Ejemplo: 

Javascript

const fs = require('fs');
  
fs.readFile('./hello.txt', ,'utf8', (err, data) => {
     if (err) {
         console.error(err);
               return;
     }
     console.log(data);
});

Producción:

 

Convirtamos esto en una promesa. 

Mecanismo: para convertir esta función readFile en una promesa, tenemos que crear una nueva función, llamémosla readFilePromise con dos argumentos fileName & encoding. Dentro de esta función, devolvemos una nueva promesa, y esta promesa usa la función readFile dentro de ella. Si la función readFile devuelve el resultado requerido, resuelve la promesa, lo que significa que devuelve los datos como una promesa, y si la función no devuelve el resultado requerido, rechaza la promesa, lo que significa que devuelve un error en lugar de datos.

const readFile = (fileName, encoding) => {
   return new Promise((resolve, reject) => {
       fs.readFile(fileName, encoding, (err, data) => {
           if (err) {
               return reject(err);
           }
           resolve(data);
       });
   });
}

Código completo:

Javascript

const fs = require('fs');
  
const readFilePromise = (fileName, encoding) => {
    return new Promise((resolve, reject) => {
        fs.readFile(fileName, encoding, (err, data) => {
            if (err) {
                return reject(err);
            }
  
            resolve(data);
        });
    });
}
  
readFilePromise('./hello.txt', 'uft8')
    .then(data => {
        console.log(data);
    })
    .catch(err => {
        console.log(err);
    });

Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.

node app.js

Producción:

 

Publicación traducida automáticamente

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