¿Cómo reescribir aplicaciones basadas en promesas en Async/Await en Node.js?

En este artículo, veremos cómo podemos reescribir la aplicación Node.js basada en promesas en Async/Await. 

Supongamos que tenemos que leer el contenido de un archivo ‘index.txt’, y tenemos una función ‘readFilePromise’ que usa el método ‘readFile’ del módulo fs para leer los datos de un archivo, y la función ‘readFilePromise’ resuelve la promesa si se encuentran los datos de lo contrario rechaza la promesa con el error respectivo.

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);
        });
    });
}

luego, podemos manejar los datos llamando a la función ‘readFilePromise’ con dos argumentos, la ruta del archivo y la codificación del archivo, si obtiene el resultado requerido, ejecuta el código del bloque, y si obtiene el error, ejecuta el código del bloque catch.

readFilePromise('./input.txt', 'utf8')
    .then(data => {
        console.log(data);
    })
    .catch(err => {
        console.log(err);
    });

Ejemplo:

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('./input.txt', 'utf8')
    .then(data => {
        console.log(data);
    })
    .catch(err => {
        console.log(err);
    });

Producción:

 

Ahora reescribamos esta promesa a async/await. Para usar ‘await’, tenemos que usar la palabra clave ‘async’, ‘await’ para detener la ejecución del programa hasta que el método ‘readFile’ del módulo fs devuelva algo. Puede ser un error o datos requeridos, si es un error, entonces tenemos que registrar el error, si no, registrar los datos requeridos.

const fs = require('fs');

const readFileAsyncAwait = async (filePath, encoding) => {
    await fs.readFile(filePath, encoding, (err, data)=>{
        if(err){
            console.log(err);
        }
        console.log(data);
    });
}

Luego podemos llamar a la función ‘readFilePromise’ con dos argumentos, la ruta del archivo y la codificación del archivo, y si hay algún error, simplemente registra el error; de lo contrario, registra los datos requeridos.

readFileAsyncAwait('input.txt', 'utf8');

Ejemplo:

Javascript

const fs = require('fs');
  
const readFileAsyncAwait = async (filePath, encoding) => {
    await fs.readFile(filePath, encoding, (err, data)=>{
        if(err){
            console.log(err);
        }
        console.log(data);
    });
}
  
readFileAsyncAwait('input.txt', 'utf8');

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 *