Javascript NodeJS中未提供回调模式
我通常会花几个小时编写NodeJS代码,有一种常见的情况我不知道该如何面对。给定以下异步函数调用(其中我们忘记了所需的回调): 处理这个问题哪种方法更好?我有两个选择:Javascript NodeJS中未提供回调模式,javascript,node.js,asynchronous,express,callback,Javascript,Node.js,Asynchronous,Express,Callback,我通常会花几个小时编写NodeJS代码,有一种常见的情况我不知道该如何面对。给定以下异步函数调用(其中我们忘记了所需的回调): 处理这个问题哪种方法更好?我有两个选择: 使foo()函数更加健壮,将其添加为第一行:callback=callback | | function(){} 当foo()试图调用callback()但它不存在时,让它崩溃 也许第三个选项(我更喜欢)是最好的:如果没有提供回调,则抛出自定义错误,如foo()的第一行。例如: function foo (callback) {
foo()
函数更加健壮,将其添加为第一行:callback=callback | | function(){}
foo()
试图调用callback()
但它不存在时,让它崩溃foo()
的第一行。例如:
function foo (callback) {
if (!callback) {
throw new Error('No callback provided');
}
// More stuff here
callback();
}
我的问题是:
有什么众所周知的模式来解决这种情况吗?你认为哪种方法更好?您是否以不同的方式解决此问题?这取决于您的回调是否为强制回调
- 如果它是强制性的,那么您应该快速失败并执行
抛出新错误(“未提供回调”)代码>
- 如果它是可选的则标准做法是,如果它存在,您只需调用它。不要创建新函数,只需在调用它的位置添加一个检查:
if ( callback ) { callback(); }
callback && callback();
这完全取决于您的回调是否是强制的
- 如果它是强制性的,那么您应该快速失败并执行
抛出新错误(“未提供回调”)代码>
- 如果它是可选的则标准做法是,如果它存在,您只需调用它。不要创建新函数,只需在调用它的位置添加一个检查:
if ( callback ) { callback(); }
callback && callback();
这完全取决于您的回调是否是强制的
- 如果它是强制性的,那么您应该快速失败并执行
抛出新错误(“未提供回调”)代码>
- 如果它是可选的则标准做法是,如果它存在,您只需调用它。不要创建新函数,只需在调用它的位置添加一个检查:
if ( callback ) { callback(); }
callback && callback();
这完全取决于您的回调是否是强制的
- 如果它是强制性的,那么您应该快速失败并执行
抛出新错误(“未提供回调”)代码>
- 如果它是可选的则标准做法是,如果它存在,您只需调用它。不要创建新函数,只需在调用它的位置添加一个检查:
if ( callback ) { callback(); }
callback && callback();
您是否尝试使用异步函数?它为无回调的设计带来了一些新的方法。您是否尝试使用异步函数?它为无回调的设计带来了一些新的方法。您是否尝试使用异步函数?它为无回调的设计带来了一些新的方法。您是否尝试使用异步函数?它为无回调的设计带来了一些新的方法。
typeof callback==“function”
在这里会更好吗?@BenFortune如果你有一个名为“callback”的变量,从语义上说它是type function,我宁愿调用它,如果它不是函数,代码就会失败。这样就更容易知道回调中存储了错误的内容。typeof callback==“function”
是否在这里工作得更好?@BenFortune如果你有一个名为“callback”的变量,从语义上讲它是type function,我宁愿调用它,如果它不是函数,代码就会失败。这样就更容易知道回调中存储了错误的内容。typeof callback==“function”
是否在这里工作得更好?@BenFortune如果你有一个名为“callback”的变量,从语义上讲它是type function,我宁愿调用它,如果它不是函数,代码就会失败。这样就更容易知道回调中存储了错误的内容。typeof callback==“function”
是否在这里工作得更好?@BenFortune如果你有一个名为“callback”的变量,从语义上讲它是type function,我宁愿调用它,如果它不是函数,代码就会失败。这样就更容易知道回调中存储了错误的内容。