避免在咖啡脚本中自动生成返回
avoiding auto generated returns in coffee script
如何摆脱咖啡脚本中自动生成的回报:
createHash = (password) ->
bcrypt.genSalt 10, (err, salt) ->
bcrypt.hash password, salt, (err, hash) ->
hash
我得到...
createHash = function(password) {
return bcrypt.genSalt(10, function(err, salt) {
return bcrypt.hash(password, salt, function(err, hash) {
return hash;
});
});
};
。但我想要一个没有回报的解决方案:
createHash = function(password) {
bcrypt.genSalt(10, function(err, salt) {
bcrypt.hash(password, salt, function(err, hash) {
return hash;
});
});
};
我是如何完成这项工作的?
默认情况下,CoffeeScript 函数返回其最后一个表达式的值,以便:
f = ->
# Bunch of interesting things...
6
相当于:
f = ->
# Bunch of interesting things...
return 6
因此,return
出现在转译的 JavaScript 中。
在 JavaScript 中,没有显式return
的函数隐式返回undefined
因此它们返回相同的内容:
function() { }
function() { return }
function() { return undefined }
将这两件事放在一起为您提供了两种选择:
在函数底部抛出一个
undefined
,以使用显式return
绕过隐式:createHash = (password) -> bcrypt.genSalt 10, (err, salt) -> bcrypt.hash password, salt, (err, hash) -> hash undefined undefined
或者更好的是,用空
return
明确指示您不返回任何内容:createHash = (password) -> bcrypt.genSalt 10, (err, salt) -> bcrypt.hash password, salt, (err, hash) -> hash return return
第二个选项应该准确地给你正在寻找的JavaScript:
var createHash;
createHash = function(password) {
bcrypt.genSalt(10, function(err, salt) {
bcrypt.hash(password, salt, function(err, hash) {
return hash;
});
});
};
相关文章:
- 自动生成的用户名
- 从现有html自动生成html源文档
- 使用Google Feeds API使用“tap”在jquery mobile中自动生成feed列表
- Div 自动生成时自动关闭
- 如何选择由 DevExpress constrols 使用 Javascript DOM 技术自动生成的 html “i
- 数据表自动生成的序列号无法正常工作.对于每一页
- 数组中自动生成的一组值
- 我可以自动生成一个jquery块,对不同的元素做同样的事情吗
- 弹出窗口自动生成无边界
- 在文本框中自动生成值
- SignalR Jquery自动生成Div
- 为什么jQuery UI自动完成返回为禁用/“;关闭”;
- 如何自动生成目录
- 从JSON模式自动生成JavaScript
- 如何在FineUploader上传到s3时获得客户端自动生成的uuid
- 如何获取插入到表中的行的自动生成的ID
- Firebase-如何找到所有具有自动生成ID的匹配项,其中值为false
- 使用javascript从字符串中自动生成标记
- 在HTML表单中使用自动生成(即随机)的ID
- 避免在咖啡脚本中自动生成返回