34 lines
		
	
	
		
			747 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			747 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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
 | |
| 	};
 | |
| };
 |