commit 05de47149f917aec448f43175e2443bc875ad8a9
parent 1502985d9854701dda05a1a4c2301bbeb6937561
Author: Dan Stillman <dstillman@zotero.org>
Date: Wed, 27 Apr 2016 02:32:58 -0400
Allow marking of errors as handled for Bluebird
Set .handledRejection on an Error object to tell Bluebird that it's been
handled and shouldn't be logged by onPossiblyUnhandledRejection().
Diffstat:
3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/resource/bluebird.js b/resource/bluebird.js
@@ -96,13 +96,10 @@
});
// TEMP: Only turn on if debug logging enabled?
Promise.onPossiblyUnhandledRejection(function (e, promise) {
- if (e.name == 'ZoteroPromiseInterrupt') {
+ if (e.name == 'ZoteroPromiseInterrupt' || e.handledRejection) {
return;
}
- // Ignore some errors during tests
- if (e.message && e.message.indexOf(' -- ignore') != -1) return;
-
self.debug('Possibly unhandled rejection:\n\n' + e.message);
throw e;
});
diff --git a/resource/concurrentCaller.js b/resource/concurrentCaller.js
@@ -246,6 +246,7 @@ ConcurrentCaller.prototype._processNext = function () {
this._processNext();
});
+ e.handledRejection = true;
f.deferred.reject(e);
});
return true;
diff --git a/test/tests/concurrentCallerTest.js b/test/tests/concurrentCallerTest.js
@@ -206,8 +206,10 @@ describe("ConcurrentCaller", function () {
Zotero.debug("Throwing " + id);
// This causes an erroneous "possibly unhandled rejection" message in
// Bluebird 2.10.2 that I can't seem to get rid of (and the rejection
- // is later handled), so pass " -- ignore" to tell Bluebird to ignore it
- throw new Error("Fail -- ignore");
+ // is later handled), so tell Bluebird to ignore it
+ let e = new Error("Fail");
+ e.handledRejection = true;
+ throw e;
}
if (running > numConcurrent) {
failed = true;
@@ -279,8 +281,10 @@ describe("ConcurrentCaller", function () {
Zotero.debug("Throwing " + id);
// This causes an erroneous "possibly unhandled rejection" message in
// Bluebird 2.10.2 that I can't seem to get rid of (and the rejection
- // is later handled), so pass " -- ignore" to tell Bluebird to ignore it
- throw new Error("Fail -- ignore");
+ // is later handled), so tell Bluebird to ignore it
+ let e = new Error("Fail");
+ e.handledRejection = true;
+ throw e;
}
if (running > numConcurrent) {
failed = true;