プログラマーは、エラーについて非同期に通知される仕方に分かれているようです。エラーバックを使用する利点は何ですか?
プログラマーの中には、値と誤っていないかどうかを示すブール値の2つの引数を持つコールバックを使用する方が好きかもしれません。それはtry catch
の文のように見えるという点でこれは利点があります。
asyncFunct(function (value, noError) {
if (noError) {
// success, do something with value
} else {
// value is the error which is thrown
}
});
その他(すなわち、ブール値が誤っているかどうかを伝える必要があります)、負のを好みます。
asyncFunction(function (value, isErroneous) {
if (!isErrorneous) {
// success, do something with value
} else {
// value is the error which is thrown
}
});
asyncFunction(function (value) {
// success, do something with value
});
はその後、非同期機能とerrbacksを正常に実行するために別々のコールバックを提案している人がいる。彼らの推論を使用すると、非同期関数がエラーをスローしないことを知っていれば、以下のように、あなたが安全に二番目のパラメータを省略することができるということです非同期関数の誤った実行これは彼が、コールバック、errbacks、両方またはnoneを処理したい場合は、プログラマが選択することができます:
asyncFunction(function (value) {
// success, do something with value
}, function (error) {
// handle the error
});
asyncFunction(function (value) {
// success, do something with value
});
asyncFunction(null, function (error) {
// handle the error
});
私はどのあなたが好む方法を求めていませんよ。私は単に各メソッドの長所と短所を尋ねているので、どのメソッドを使うべきかを知っています。
実際のメリットとデメリットはありません。それは単なるスタイルの問題です、イホ。 – freakish
もう一つの方法がありますが、これははるかに強力なIMOです:[遅延オブジェクト](http://blogs.msdn.com/b/ie/archive/2011/09/11/asynchronous-programming-in-javascript-with- promises.aspx)。 –
私は遅延オブジェクトも好んでいます。しかし、あなたが選んだどのような方法でもアプリ全体で一貫して使用することができますが、_best_アプローチを選択するよりも一貫性が重要になることがよくあります。 – msanders