Monkeypatch to track pending promises
npm install promise-with-trackingA promise monkeypatch to provide functionality to keep track of how many promises are still pending.
Install it:
yarn add promise-with-tracking or npm install promise-with-tracking
Pull it into your app. Monkeypatching will happen when the module is evaluated, so import it near the entrypoint.
``javascript`
require('promise-with-tracking');
Check in on some promise counts in your app:
`javascriptUh oh, something isn't done
if (Promise.getPendingPromises() > 0) {
console.log();All done
} else {
console.log();`
}
It can be notoriously tricky to track down when promises haven't resolved, and if so why. This module is useful for giving you a sense of code chunks that you need to take a closer look at. Here are some use cases for Promise.getPendingPromises()`:
- Call it before your lambda function finishes, log an error if it's greater than 0. You probably don't want to leak promises between invocations.
- Call it at the end of a nodejs cron script, to ensure that you've cleaned up correctly
- Call it periodically in an webapp, to keep an eye on memory leaks. If the number keeps going up until a restart, you may have a problem.