プログラマーは、エラーについて非同期的に通知を受け取る方法について意見が分かれているようです。
一部のプログラマーは、値と、値が間違っていないかどうかを示すブール値の 2 つの引数を持つコールバックを使用することを好みます。try catch
これには、ステートメントのように見えるという利点があります。
asyncFunct(function (value, noError) {
if (noError) {
// success, do something with value
} else {
// value is the error which is thrown
}
});
他の人は負を好みます (つまり、ブール値は値が間違っているかどうかを伝える必要があります)。彼らの理由は、非同期関数が決してエラーをスローしないことがわかっている場合は、次のように 2 番目のパラメーターを安全に省略できるということです。
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
});
次に、非同期関数の正常な実行に対して個別のコールバックを提案し、非同期関数の誤った実行に対してエラーバックを提案する人々がいます。これにより、プログラマーは、コールバック、エラーバック、両方を処理するか、または何も処理しないかを選択できます。
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
});
どちらの方法を好むかを尋ねているわけではありません。どの方法をいつ使用すればよいかがわかるように、各方法の長所と短所を尋ねているだけです。