2013-05-13 82 views
3

例如如何忽略返回结果

child.stdout.on \data (buffer) -> 
    result.stdout += buffer 

- >

child.stdout.on('data', function(buffer){ 
    return result.stdout += buffer; 
}); 

,我需要它没有回报。在F#中,我可以添加|> ignore我怎样才能在livescript中处理它?

+0

我很好奇为什么你需要没有返回子句,因为你可以忽略函数调用的结果? – niahoo 2013-06-10 20:59:23

+1

@niahoo如果最后一个表达式是一个循环,它将创建一个包含所有元素的数组并返回它。这可能是昂贵的。用'! - >'它不会创建数组。 – rightfold 2014-04-30 18:26:27

回答

4

您可以在前面加上一个!到函数的定义:

!(buffer) -> result.stdout += buffer 

另外,返回void

child.stdout.on \data (buffer) -> 
    result.stdout += buffer 
    void 

在JavaScript中,当您返回未定义(无效),它是一样的不返回任何东西。

+0

你可以把'return'而不是'void'。我不确定什么是最佳做法,但是'return'可以让你在函数中不返回任何东西:'返回一些东西' – 2014-01-13 19:57:25