From 5c174fa63b5a7197ff6abe19a97b74ed7e77646d Mon Sep 17 00:00:00 2001 From: Reed Feng Date: Fri, 3 Aug 2018 02:13:46 +0800 Subject: [PATCH] [issue-1568][bug]: make sure error object defined before access its message (#1569) --- lib/asyncify.js | 2 +- test/asyncify.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/asyncify.js b/lib/asyncify.js index 168f88a20..24573771a 100644 --- a/lib/asyncify.js +++ b/lib/asyncify.js @@ -87,7 +87,7 @@ function handlePromise(promise, callback) { return promise.then(value => { invokeCallback(callback, null, value); }, err => { - invokeCallback(callback, err.message ? err : new Error(err)); + invokeCallback(callback, err && err.message ? err : new Error(err)); }); } diff --git a/test/asyncify.js b/test/asyncify.js index 225f6d47b..f76c0a754 100644 --- a/test/asyncify.js +++ b/test/asyncify.js @@ -91,6 +91,19 @@ describe('asyncify', () => { }); }); + it('reject without reason', (done) => { + var promisified = function() { + return new Promise(((resolve, reject) => { + reject(); + })); + }; + async.asyncify(promisified)("argument", (err) => { + assert(err); + expect(err.message).to.eql(''); + done(); + }); + }); + it('callback error @nodeonly', (done) => { expectUncaughtException();