Avoids UnhandledPromiseRejectionWarning and PromiseRejectionHandledWarning


Keywords
promise, async, UnhandledPromiseRejectionWarning, PromiseRejectionHandledWarning
License
MIT
Install
npm install caught@0.1.3

Documentation

node caught

npm install
Build Status Dependencies Status Known Vulnerabilities Downloads License

This module lets you attach empty rejcetion handlers to promises to avoid certain warnings that will be fatal errors in next versions of Node.

Since version 0.1.0 it supports TypeScript thanks to Wil Lee.

For a version for Deno, see: https://deno.land/x/caught

More info

Doing something like this:

var p = Promise.reject(0);

setTimeout(() => p.catch(e => console.error('caught')), 0);

will generate a lot of helpful warnings:

(node:13548) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): 0
(node:13548) DeprecationWarning: Unhandled 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.
(node:13548) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1)

This module lets you write:

var p = caught(Promise.reject(0));

setTimeout(() => p.catch(e => console.error('caught')), 0);

to ignore those warnings on a per-promise basis.

Use at your own risk.

Background

For more info see this answer on Stack Overflow:

Installation

To use in your projects:

npm install caught --save

Usage

var caught = require('caught');

var p = caught(Promise.reject(0));

Note that it is not the same as writing:

var p = Promise.reject(0).catch(() => {});

which would not return the original promise and wouldn't let you add catch handlers later.

Issues

For any bug reports or feature requests please post an issue on GitHub.

Author

Rafał Pocztarski
Follow on GitHub Follow on Twitter
Follow on Stack Exchange

Contributors

License

MIT License (Expat). See LICENSE.md for details.