程序员似乎对如何获得有关错误的异步通知存在分歧。
一些程序员更喜欢使用带有两个参数的回调:一个值和一个布尔值,用于判断该值是否正确。这样做的好处是它看起来像一个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、两者或不处理:
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
});
我不是在问你喜欢哪种方法。我只是询问每种方法的优缺点,以便我知道何时使用哪种方法。