Javascript node.js中处理回调的最佳实践
我正在创建一个javascript类,其中有一个函数使用node.js中的crypto模块。我不确定哪种方式是处理回拨的最佳方式。看一看这个例子并解释Javascript node.js中处理回调的最佳实践,javascript,node.js,express,closures,Javascript,Node.js,Express,Closures,我正在创建一个javascript类,其中有一个函数使用node.js中的crypto模块。我不确定哪种方式是处理回拨的最佳方式。看一看这个例子并解释 Users.prototype.makeSalt = function(callback){ crypto.randomBytes(64, callback); }; 或 以下哪一种是首选方法或最佳实践?在第一个示例中,我将回调直接发送到模块中定义的函数,并让它处理回调。在第二个例子中,我通过接收函数的回调来处理回调。我觉得第一个是
Users.prototype.makeSalt = function(callback){
crypto.randomBytes(64, callback);
};
或
以下哪一种是首选方法或最佳实践?在第一个示例中,我将回调直接发送到模块中定义的函数,并让它处理回调。在第二个例子中,我通过接收函数的回调来处理回调。我觉得第一个是首选,除非我需要任何定制但是我对node.js和javascript的技能非常熟悉,所以我想知道这两种方法之间的另一个区别是什么,哪种方法更可取???我认为这无关紧要。 如果您需要稍微更改回调实现,您可以像在选项2中一样通过内联代理它。如果没有,则按选项1直接传递 第一类函数的优点在于它们提供了这种灵活性。
这意味着没有那么多既定的最佳实践规则,而是根据与当前场景相关的优点对解决方案进行评估。第一个是更干净的,具有更好的可读性
Users.prototype.makeSalt = function(callback){
crypto.randomBytes(64, callback);
};
如果您看到传递给回调函数的参数是相同的,即第一个参数err
error对象和第二个参数buf
buffer。实际上,只有当您想对这些值进行操作时,才应该进行干预。在你的例子中,你什么都没做。所以对你来说,第一个是最好的,推荐的
有关详细信息:由于第二个函数与第一个函数的作用完全相同,因此第一个函数更短、更干净。如果在调用数据之前需要对其进行操作,那么第二种方法就是。
Users.prototype.makeSalt = function(callback){
crypto.randomBytes(64, callback);
};