From f1400a4ed3bfb02865b7156719e54c887f145d75 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 20 Jul 2018 16:53:19 +0200 Subject: [PATCH] Convert rejected Promises into exceptions --- index.js | 22 +++++++++++++++------- test.js | 6 ++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 6990eb0..6ccb6b0 100644 --- a/index.js +++ b/index.js @@ -75,17 +75,25 @@ }; module.exports.await = function(pr) { - var done, result; - - done = false; - result = undefined; + var done = false; + var rejected = false; + var resolutionResult = undefined; + var rejectionResult = undefined; pr.then(function(r) { - done = true; - return result = r; + done = true; + resolutionResult = r; + }).catch(function(e) { + done = true; + rejected = true; + rejectionResult = e; }); deasync.loopWhile(() => { return !done }); - return result; + + if (rejected) { + throw rejectionResult; + } + return resolutionResult; }; }()); diff --git a/test.js b/test.js index 484e7e8..23d176b 100644 --- a/test.js +++ b/test.js @@ -43,3 +43,9 @@ async function trim(str) { } console.log(deasync.await(trim(' hello '))) + +try { + deasync.await(Promise.reject("Should result in exception")); +} catch(e) { + console.log("Got expected exception:", e); +}