trap when.js необработанные отклонения
Я хотел бы поймать, когда.js необработанные отклонения, чтобы я мог их регистрировать. Чтобы добиться этого, я переопределил console.warn(), однако он может регистрировать вещи, отличные от when.js, которые мне не интересны.
ссылка: https://github.com/cujojs/when/blob/master/docs/api.md#debugging-promises
Я использую prettymonitor с when.js https://github.com/AriaMinaei/pretty-monitor
1 ответ
Если вы находитесь на стороне сервера, вы можете использовать зацепки отклонения обещания. Они будут работать в большинстве реализаций обещаний на стороне сервера (io.js, bluebird, когда и т. Д.):
process.on("unhandledRejection", function(promise, reason){
// deal with the rejection here.
});
Если вы находитесь в среде браузера, то все менее стандартизировано. Тем не менее, когда все еще предоставляет аналогичные хуки там:
window.addEventListener('unhandledRejection', function(event) {
event.preventDefault(); // This stops the initial log.
// handle event
event.detail.reason; // rejection reason
event.detail.key; // rejection promise key
}, false);
Существуют также локальные ловушки отклонения, они хороши, если вы хотите обрабатывать отклонения только одного экземпляра библиотеки обещаний - это обычно полезно при создании библиотеки самостоятельно:
var Promise = require('when').Promise;
Promise.onPotentiallyUnhandledRejection = function(rejection) {
// handle single instance error here
};