As promises são um recurso do JavaScript que permitem lidar com operações assíncronas de forma mais organizada e legível. Em vez de usar callbacks para lidar com os resultados de operações assíncronas, as promises permitem que você defina uma única função de retorno de chamada (conhecida como “then”) para lidar com os resultados de uma promessa quando ela for cumprida ou rejeitada.
Aqui está um exemplo de como uma promessa pode ser criada e usada em Node.js:
const fs = require('fs');
// Cria uma promessa para ler um arquivo
const readFilePromise = new Promise((resolve, reject) => {
fs.readFile('arquivo.txt', (err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
// Usa a promessa para ler o arquivo
readFilePromise
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
Neste exemplo, a função fs.readFile
é uma operação assíncrona que lê um arquivo de um sistema de arquivos. Em vez de passar uma função de callback para essa função, nós criamos uma promessa que envolve a chamada de fs.readFile
. Se a leitura do arquivo for bem-sucedida, a promessa é cumprida e o valor de retorno é passado para a função de retorno de chamada “then”. Se houver um erro, a promessa é rejeitada e o erro é passado para a função de retorno de chamada “catch”.
As promises são uma ótima maneira de lidar com operações assíncronas em Node.js, pois permitem que você escreva código assíncrono de forma mais legível e fácil de entender. Além disso, as promises podem ser encadeadas e combinadas de diversas maneiras, o que as torna uma ferramenta poderosa para lidar com operações assíncronas em Node.js.