2015-10-17 3 views
7

すべての関数が新しいエラーオブジェクトを作成します。だから私はどのようにpreivousエラーを得ることができますか? たとえば、これは私のコードです:私はこれを実行するとJS:多くの関数呼び出しがある場合のエラーを追跡する方法

function main(callback) { 
    a(function(err) { 
     if (err) { 
      callback(new Error('cannot run main function..')); 
      return 
     } 
    }) 
} 


function a(callback) { 
    b(function(err) { 
     if (err) { 
      callback(new Error('cannot run b function')); 
      return 
     } 
    }) 
} 


function b(callback) { 
    if (1 == 2) callback(new Error('Error in b function')) 
} 

は、私は最後のエラーを取得します(「「主な機能を実行することはできません)が、私は以前のすべてのエラーを取得したいあなたが任意の最高practiveのを持っていますか。そのため、私がやっている何

はこれです:?

if(err){ 
    err=new Error('cannot run this function.\r' + err.message) 
} 

私が求めています、あなたのことを行うための他のライブラリやより良い方法を知っているErrorオブジェクトを拡張する何かを...

。以下のような

何か:

err.push(new Error('...')) 
+0

これはnode.jsと何が関係していますか? – plocks

答えて

6

まだNode.jsの中にこのような何かをすることのない「標準」方法はありません。あなたが描いていることをする様々な図書館があります。私が見つけた最良の方法は、デフォルトのJS Errorオブジェクトを拡張するカスタムエラーオブジェクトを作成して、目的に合わせて追加のメソッドを定義することです。私はこれを行うx-errorライブラリを作成しました。あなたはそれを使用して拡張することができます(拡張方法についてはREADMEの最後を参照)。実装。

注:xエラーには、あなたが探しているのと同じようなdebugメソッドがあります。

+0

ありがとうございます。いいね。 「回答を受け入れる」と選択する前に、他の誰かが他の図書館を作ったかどうかを確認するのを待つ。 – Aminadav

関連する問題