2017-03-16 15 views
-1
var promise = new Promise(function(resolve, reject) { 
    try { 
    throw new Error('test'); 
    } catch(e) { 
    reject(e); 
    } 
}); 
promise.catch(function(error) { 
    console.log(error); 
}); 

を私たちは "のtry-catch" を違い「のtry-catch」

// mothod 2 
var promise = new Promise(function(resolve, reject) { 
    reject(new Error('test')); 
}); 
promise.catch(function(error) { 
    console.log(error); 
}); 

我々はまた、エラーをスローする "拒否" を使用することができ、エラーをスローするために使用することができますと、「約束を拒否します」。

どういう違いがありますか?

+2

両方のコード例は、例外を渡している間に 'reject'を呼び出すことになります。これは、「なぜこのリンゴはこのリンゴとまったく同じですか?」と尋ねるのとほぼ同じです。 –

+0

[約束のコールバックの中で 'try' /' catch'を使わないでください](http://stackoverflow.com/a/42650428/1048572) – Bergi

答えて

1
  1. 例外はtry-catchブロックで処理することはできません。
  2. 約束は連鎖可能です。読みやすさに影響を与えるコードのネストを防止します。
0

効果的な違いはありません。いずれの場合も、reject()に間違いがあります。

次はまた、あなたがそこに持っているものと同等です:非同期関数からスロー

var promise = new Promise(function(resolve, reject) { 
    throw new Error('test'); 
}); 


var promise = Promise.reject(new Error('test')); 


var promise = Promise.resolve().then(function() { throw new Error('test'); }); 
関連する問題