You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
747 B
JavaScript
34 lines
747 B
JavaScript
5 years ago
|
'use strict';
|
||
|
var arrayFindIndex = require('array-find-index');
|
||
|
|
||
|
module.exports = function () {
|
||
|
var unhandledRejections = [];
|
||
|
|
||
|
function onUnhandledRejection(reason, promise) {
|
||
|
unhandledRejections.push({reason: reason, promise: promise});
|
||
|
}
|
||
|
|
||
|
function onRejectionHandled(promise) {
|
||
|
var index = arrayFindIndex(unhandledRejections, function (x) {
|
||
|
return x.promise === promise;
|
||
|
});
|
||
|
|
||
|
unhandledRejections.splice(index, 1);
|
||
|
}
|
||
|
|
||
|
function currentlyUnhandled() {
|
||
|
return unhandledRejections.map(function (entry) {
|
||
|
return {
|
||
|
reason: entry.reason,
|
||
|
promise: entry.promise
|
||
|
};
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
onUnhandledRejection: onUnhandledRejection,
|
||
|
onRejectionHandled: onRejectionHandled,
|
||
|
currentlyUnhandled: currentlyUnhandled
|
||
|
};
|
||
|
};
|