将javascript函数转换为coffee脚本
有人能帮我把下面的翻译成咖啡脚本吗将javascript函数转换为coffee脚本,javascript,coffeescript,Javascript,Coffeescript,有人能帮我把下面的翻译成咖啡脚本吗 Step( function readSelf() { fs.readFile(__filename, this); }, function capitalize(err, text) { if (err) throw err; return text.toUpperCase(); }, function showIt(err, newText) { if (err) throw err; conso
Step(
function readSelf() {
fs.readFile(__filename, this);
},
function capitalize(err, text) {
if (err) throw err;
return text.toUpperCase();
},
function showIt(err, newText) {
if (err) throw err;
console.log(newText);
}
);
CoffeeScript等效物如下所示
Step (readSelf = ->
fs.readFile __filename, @
), (capitalize = (err, text) ->
throw err if err?
text.toUpperCase()
), showIt = (err, newText) ->
throw err if err?
console.log newText
您可以为此目的使用此网站,也可以从下载并安装代码,然后在您的计算机上使用
Step(
readSelf = -> fs.readFile __filename, @
capitalize = (err, text) ->
throw err if err
text.toUpperCase()
showIt = (err, newText) ->
throw err if err
console.log newText
)
永远不要使用转换器。转换后,您的代码可能会损坏。
例如,您可以在上一篇文章中看到的代码是不正确的。因为表情
throw err if err?
将产生:
if (typeof err !== "undefined" && err !== null) {
throw err;
}
我想这不是你期望看到的。
我用咖啡做实验。
不要使用js2coffee站点,在转换过程中会出现一些错误,这些错误可能很关键。我有一些。。
祝你好运 我会用
@
替换这个
,只是因为它更像咖啡脚本。此外,您可能希望在那些if
s-if err?
中使用存在主义。我知道这会转换成稍微不同的JavaScript,但更可能是它的意思。@Aaron如果出错,则没有任何错误。err
将是undefined
/null
,或者它将是一个对象,因此布尔强制不会增加任何歧义。或者你的意思是,如果错误?
是一种审美偏好,这是合法的。@Trevor不知道err
的值可能会是什么,它的可读性(因为你真正做的是检查是否存在)和正确性(我在罕见且有点可怕的情况下,看到了一个由空字符串表示的错误)。