Skip to content
This repository has been archived by the owner on Apr 11, 2020. It is now read-only.

mmarchini/promise-reject-rethrow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

promise-reject-rethrow

Rethrow Promise rejection in the same tick. Useful to generate core dumps when using Promises.

WARNING: THIS PACKAGE FORCES EXIT ON UNHANDLED REJECTIONS

This package is still experimental. Behavior can drastically change in future versions.

Usage

// example.js
function wee(lala) {
  throw new Error();
}

function foo() {
  new Promise(function bar() { wee(5); });
}

foo();
$ npm install --save promise-reject-rethrow example.js
$ node -r promise-reject-rethrow example.js
/Users/mmarchini/workspace/mmarchini/promise-reject-rethrow/index.js:4
  throw reason;
  ^

Error
    at wee (/Users/mmarchini/workspace/mmarchini/promise-reject-rethrow/example.js:2:11)
    at bar (/Users/mmarchini/workspace/mmarchini/promise-reject-rethrow/example.js:6:34)
    at new Promise (<anonymous>)
    at foo (/Users/mmarchini/workspace/mmarchini/promise-reject-rethrow/example.js:6:5)
    at Object.<anonymous> (/Users/mmarchini/workspace/mmarchini/promise-reject-rethrow/example.js:9:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load

Or, if you want to generate a core dump on unhandled rejections:

$ node -r promise-reject-rethrow --abort-on-uncaught-exception example.js

Caveats

Stack trace for the core dump is not complete, we're still missing calls in the Promise resolution path.

About

Rethrow Promise rejection in the same tick

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published