2016-02-20 23 views

回答

4

一旦上游來源耗盡,await管道將作爲結果開始返回Nothing,並且從現在開始不會返回任何東西,而是返回Nothing。它表明上游管道的終止,所以你可以做一些定案工作。

另一端yieldOr指示下游宿/管道的終止。簡單的yield實現爲\o -> yieldOr o (return()),您可以用您的最終代碼替換return()

如果您尚未完成此管道的定型工作,則可以使用awaitForever代替。

相當在座的各位可能已經在通過管道包的作家寫的教程總結的問題,我閱讀推薦首先:Conduit Overview

+0

但有可能返回'Nothing'如果沒有價值_right現在_?因此,隨後的調用可以在值準備好時再次返回「Just」? –

+1

@AlexeyRaga從根本上說,不是不可能的。幕後管道是向後工作的:你從最後的匯點詢問價值,匯點詢問上游管道/來源的價值等等。他們會互相等待。當沒有剩餘價值時,上游實際上會向下遊傳遞一個特殊的「無價值」指標,這樣他們就會知道他們不必再等待了。 – zakyggaps

相關問題