Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
Process.on(unhandledRejection) log the actual promise instead of [Object Promise]

I feel there should be an easy answer to this I am missing. I rarely get unhandledRejections, however when I do, the reason from process.on('unhandledRejection', (reason, promise) => {...is not always enough to find the origination of the error. So I was hoping to also log information on the [Object Promise] that gets logged from promise.

Code:

module.exports = async (client, process, reason, promise) => {
    const date = new Date();
    const formatDate = stripIndents`${(date.getMonth() + 1)
        .toString().padStart(2, '0')}-${date.getDate()
            .toString().padStart(2, '0')}-${date.getFullYear()
                .toString().padStart(4, '0')}`

    const formatTime = stripIndents`${date.getHours()
        .toString().padStart(2, '0')}-${date.getMinutes()
            .toString().padStart(2, '0')}-${date.getSeconds()
                .toString().padStart(2, '0')}`

    var dir = './logs';

    if (!fs.existsSync(dir)) fs.mkdirSync(dir);

    fs.appendFile(`./logs/${formatDate} UnhandledRejection.log`, `${formatDate} ${formatTime}: A new unhandledRejection: at promise ${promise} for: ${reason}\n`, function (err) {
        if (err) throw err;
        console.log(`A new UnhandledRejection has been logged to: ${formatDate} UnhandledRejection.log`)
    });
}

This of course logs something similar to this in my log file:

09-28-2021 04-00-15: A new unhandledRejection error [object Promise] for TypeError: Volume must be a number. Which in this case, I know I am referring to my volume for my music player, but when I get something like this:

08-10-2021 07-03-02: A new unhandledRejection error [object Promise] for TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters, it can be very hard to find where this problem is coming from.

Although the reason is usually enough to find the origination of the error, gaining access to the [Object Promise], could help further pinpoint the error. I have tried promise.catch(...), promise.then(...), promise.then(...).catch(...), all of which resulted in an infinite console logging loop.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!