【发布时间】:2013-10-28 13:24:36
【问题描述】:
假设我有一个这样的简单函数:
foo ->
User.findById someId, (err, user) ->
return "hello #{user.name}"
coffeescript translate 到那个:
foo(function() {
return User.findById(someId, function(err, user) {
return "hello " + user.name;
});
});
所以由于某种原因这里有 2 个返回,但我只想在回调之后返回“hello”。
我发现在使用函数时不返回函数的唯一方法是用return 关闭它(这是一个奇怪的解决方法)。所以:
foo ->
User.findById someId, (err, user) ->
return "hello #{user.name}"
return
将翻译成:
foo(function() {
User.findById(someId, function(err, user) {
return "hello " + user.name;
});
});
除了使用return 键关闭函数之外,还有更好的方法吗?
【问题讨论】:
-
不清楚您要做什么,但 Coffeescript 翻译器只是按照您的指示去做。你的第一个例子说,“函数'foo'应该调用函数'User.findById'并将'someId'和另一个函数的值传递给它,它接受两个参数'err'和'user',并返回一个字符串。 "