2016-05-05 3 views
0

Я в Ошибка функции обработчика:Трассировка стека Обработчик ошибок и Promises Обработчик ошибок

function onError(message, source, lineno, colno, error) { sendRequestToSendMail(arguments) } 
window.onerror = onError 

Я также асинхронная задача с обещаниями, и я хочу поймать исключения в них. Мне не нужно повторять себя, как:

doSomething1() 
    .then(doSomething2(), onError) 
    .then(doSomething3(), onError) 
    .then(doSomething4(), onError) 

Как реализовать глобальный обработчик ошибок для всех обещаний (как window.onerror)?

ответ

1

Это не глобальный обработчик ошибок (который не похож на отличную идею для меня tbh), но поскольку ошибки распространяются по цепочке обещаний, вы можете сократить свой код (и избавиться от повторения), добавив окончательное .catch() заявление вашей цепи:

doSomething1() 
    .then(doSomething2()) 
    .then(doSomething3()) 
    .then(doSomething4()) 
    .catch(onError) 

что бы поймать любые отказы брошенные любой из doSomething* функций.

Смежные вопросы