A clear rejection is always better than a fake promise, so when dealing with Promises in Node.JS consider the rejection aspect of the promise.
It is quite easy to handle, I prefer the Async method of handing promises, as it is much easier to read and understand.
Here is an example of how to throw a reject and handle the error:
function doSomething(message){
return new Promise(function (fulfill, reject){
setTimeout(() => {
reject(message + " rejected");
}, 2000);
});
}
(async function read() {
try{
const data = await doSomething('second promise');
console.log(data);
} catch (error) {
console.log("error: " + error);
}
}
)();
console.log("Will hit here first, then wait for two seconds");
The response should look something like this:
Will hit here first, then wait for two seconds error: second promise rejected
If you still wish to use the .then and .catch method of Promises then here syntax for that method:
doSomething('first promise')
.then(data => {
console.log(data);
})
.catch((err) => {
console.log("error: " + err);
});
For further reading take a look here