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

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
};
};