2016-06-15 16 views
3

私は約束を新たにしており、ネイティブプロミス(NodeJs)のベストプラクティスは何か疑問です。プロミス - 返品拒否または拒否(値)の差

私はより良い質問を理解するには、以下のいくつかのコードを配置:B液で

コードA

function foo(condition) { 
return new Promise((resolve, reject) => { 
    if(condition){ 
     resolve('Promise result!'); 
    } else { 
     reject('Promise rejected!'); 
    } 
}); 
} 

コードB

function foo(condition) { 
return new Promise((resolve, reject) => { 
    if(condition){ 
     return resolve('Promise result!'); 
    } else { 
     return reject('Promise rejected!'); 
    } 
}); 
} 

を、私はreturn文を追加。

有用でしょうか?

コードAコードBの違いは?もしあれば?

+3

'Promise'コンストラクタは、あなたがあなたの関数から返すものを気にしません。 'return 42;'とすることができます – zerkms

+1

コードAでは、* promise *の返り値は未定義ですか? – enricop89

+1

.............. – zerkms

答えて

3

短い回答:あなたが帰っても、しなくても関係ありません。

specは、エグゼキュータの戻り値が使用されていないことを示しています。呼び出しが突然完了したかどうかだけがチェックされます。 (エラーをスローすると突然完了します)急な完了が起こった場合、約束は拒否されます。

+1

戻り値が使用されていないと言っても間違いありませんが、拒否の後に戻ると便利なことがあります(残りのメソッドを実行される)。 –

関連する問題