2016-05-05 15 views
0

を約束私はエラーハンドラ関数VEの:スタックトレースのエラーハンドラとエラーハンドラ

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

私は約束しても、非同期タスクを持っていると私はそれで例外をキャッチします。

(window.onErrorのような)すべての約束のためのグローバルエラーハンドラを実装する方法
doSomething1() 
    .then(doSomething2(), onError) 
    .then(doSomething3(), onError) 
    .then(doSomething4(), onError) 

:私は次のように自分自身を繰り返す必要はありませんか?

答えて

1

それは(TBH私には素晴らしいアイデアのような音はありません)グローバルエラーハンドラはありませんが、エラーが約束チェーンを介して伝播されているので、あなたのコードを短くする(と繰り返しを取り除く)ことができます追加することにより、あなたのチェーンへの最終.catch()声明:

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

doSomething*機能のいずれかによってスローされたすべての拒否をキャッチします。

関連する問題