2017-02-09 7 views
-3

bluebird nodejs .catchの代わりに.error()を使用するのはいつですか。bluebird nodejsの場合.catchの代わりに.error()を使用する必要があります。

これらの違いは何ですか?簡単に説明してください。

promise() 
.then() 
.error() OR 
.catch() 
+2

あなたがドキュメントを読むことがありますか?あなたは何を理解していないのですか? http://bluebirdjs.com/docs/api/error.html –

+0

'.error()'と '.catch()'の正確な違いを説明しているドキュメントがある場合、あなたの質問は「what's差異は "ドキュメントはすでにかなり明確に違いを示しているので、非常に良い例です。あなたのためにドキュメンテーションを見つけることを私たちに求めているようです。あなたが理解していないドキュメントに何かがある場合、あなたの質問はそれに関するものでなければなりません。 – jfriend00

+0

私はドキュメントを読んでいます。しかし、依然として疑問を持っていたので、なぜ質問されています。 –

答えて

1

.catch

  • キャッチすべてのエラーとも

.error ES6 standardされます。エラーだけキャッチ

  • Error
  • のインスタンスは、あなたが.catch

    いくつかのライブラリまたはユーザーコードを使用してオフに優れているので、多くの図書館は、ErrorのインスタンスであるエラーをスローしませんBluebird

に便利なメソッドですinstanceOf Errorであるエラーをスローすることはできません。 Error(またはサブクラス)インスタンスをスローすることをお勧めしますが、それ以外の場合は停止することはありません。 .catch同様

ではなく、例外のすべてのタイプを引くのではなく、唯一の操作ミスをキャッチ:http://bluebirdjs.com/docs/api/catch.htmlから

。 「エラー」とは、文字列、数字などではなく、エラーのインスタンスであるオブジェクトのように、エラーを意味します。文字列はエラーではありません。

エラーがErrorのインスタンスでなかった場合があります。彼らは修正されました。

  1. https://github.com/NodeRedis/node_redis/issues/374
  2. https://github.com/google/google-api-nodejs-client/issues/345
0
Whenever Dealing with bluebird think about the asynchronous call of 
try{ 
    }catch(){ 
    } block 
    function doSomeWork() { 
     return Promise.try(function() { 

     return request.get(url).then(function(response) { 
      // ... do some specific work 
     }); 

     }).catch(function(err) { 
     console.log("Some specific work failed", err); 
     throw err; // IMPORTANT! throw unless you intend to suppress the error 
     }); 
    } 
+0

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由と理由についての追加の文脈を提供することで、 –

関連する問題