You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
747 B
33 lines
747 B
'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 |
|
}; |
|
};
|
|
|