3
我不明白爲什麼Scala的Future
比Twitters更難使用並且功能更少,而第一個是在第二個之後創建的。因此,這裏有大約scala.concurrent.Future
問題:Scala未來設計問題
- 爲什麼
Future.onComplete
回報Unit
代替Future
?可組合的方法更方便。 - 爲什麼Scala的
Future
不支持取消?
我不明白爲什麼Scala的Future
比Twitters更難使用並且功能更少,而第一個是在第二個之後創建的。因此,這裏有大約scala.concurrent.Future
問題:Scala未來設計問題
Future.onComplete
回報Unit
代替Future
?可組合的方法更方便。Future
不支持取消?Future.onComplete
返回一個單位,所以調用不能被鏈接。根據Scala文檔,「請注意,此設計是有意的,以避免暗示鏈式調用可能意味着執行已註冊回調的順序(在相同的未來註冊的回調無序)」。
爲了構建未來,請使用組合器,如flatMap
,andThen
和filter
,它們都返回Future。
退房http://docs.scala-lang.org/overviews/core/futures.html#functional-composition-and-for-comprehensions更多細節
我認爲取消是相當細緻入微。有關更多詳細信息,請參閱此討論:How to cancel Future in Scala?
地圖是轉換,我不希望進行轉換。我想在返回的Future Future上添加'onSuccess'和'onFailure'處理程序 –
對不起,好點 - 我誤解了。我相應地更新了我的答案。聽起來像scala不希望'onComplete','onSuccess'和'onFailure'方法是可鏈接的,因爲這可能意味着所有鏈接回調的順序。聽起來像一個合理的權衡 –
http://stackoverflow.com/questions/32987855/what-are-advantages-of-a-twitter-future-over-a-scala-future有關於兩者之間的差異更多的信息。 – Shastick