並列に実行される複数の演算を取り扱うのに便利な方法を提供する。それは効率的でノンブロッキングな方法だ。はまだ存在しない計算結果に対するプレースホルダのようなものだ。結果は並行に計算され後で集計することができる。このように並行なタスクを合成することで、より速く、非同期で、ノンブロッキングな並列コードとなることが多い。ノンブロッキングであり、典型的なブロッキング演算の代わりにコールバックを使う。いったコンビネータを提供する。ブロックすることもできる。ある時点において利用可能となる可能性のある値を保持するオブジェクトだ。この値は、なんらかの計算結果であることが多い。計算が例外を投げる場合を想定して例外を保持することもできる。その値とともに成功したという。その例外とともに失敗したという。1回だけ代入することができるという重要な特性がある。オブジェクトが値もしくは例外を持つと、実質不変となり、それが上書きされることは絶対に無い。メソッドを呼び出すことだ。完了すると利用可能になる。オブジェクトを返すメソッドだということだ。想定して、与えられたユーザの友達のリストを取得できるものとする。見えるようにしている。2つ目のインポートは追って説明する。メソッドを呼んでサーバにリクエストを送るセッション変数を初期化している。ユーザの友達リストを取得するには、ネットワークごしにリクエストを送信する必要があり、それは長い時間がかかる可能性がある。メソッドで例示されている。有効に使うには、プログラムの残りをブロックするべきではない。この計算は非同期にスケジュールされるべきだ。メソッドはまさにそれを行い、与えれたブロックを並行に実行する。この場合は、リクエストを送信し応答を待ち続ける。内において友達リストが利用可能となる。試みが失敗すると、例外が発生するかもしれない。