2013-05-13 60 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