Async/Await UnhandledPromiseRejectionWarning
When an await promise is rejected when using async/await you get an UnhandledPromiseRejectionWarning
.
promise13 = () => {
return new Promise((resolve, reject) => { reject(13)})
}
(async () => {
let num = await promise13(); // UnhandledPromiseRejectionWarning
console.log('num', num);
})();
There are two ways to properly handle the promise reject. The first is with a try catch block.
(async () => {
try {
let num = await promise13();
console.log('num', num);
} catch(e) {
console.log('Error caught');
}
})();
The second is by handling the error on the promise itself.
(async () => {
let num = await promise13().catch((err) => console.log('caught it'));
console.log('num', num);
})();
Both ways will allow you to avoid the UnhandledPromiseRejectionWarning
and also properly handle your rejections. Beware the deprecation message that comes with this warning.
TweetUnhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.