Help us understand the problem. What is going on with this article?

com.twitter.util.Futureのメモ

More than 5 years have passed since last update.

Finagleを使うときに出てくるので、そのメモ書き。
随時更新します。

Future自体は同期的

com.twitter.util.Futureは「計算がまだ完了していない可能性がある」ことを示す単なるモナドなので、非同期処理機構自体は分離されていて、Future 自体は非同期では動かない。

com.twitter.util.Future.applyの挙動を参照。

Future.applyFuture.value

APIドキュメントにも記述があるが、Future.valueは定数(constant value)をFutureでリフトすることを明示的に示すもの。

Future.value("hogefuga")

一方、Future.applyは計算自体をFutureでリフトするもの。これには Exception などをラップする機能がある。

def func: String = throw new Exception
val future = Future(func)
future.isThrow // => true
mather314
元数学専攻のエンジニア。Web系のアプリケーション開発がメインだが、HTMLやCSSよりはバックエンドロジックの分析などが得意。Haskell, Scala, Elmなどを嗜む程度に。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away