固定した特殊形だと考えることもできる。ソーシャルネットワークの例に戻って、最近の自分の投稿した文のリストを取得して画面に表示したいとする。計算の失敗と成功の両方の結果を扱えるため、汎用性が高い。失敗した場合、つまりそれが例外を保持する場合のみ実行される。対して定義されている場合のみ発火される。println("これが表示されているとしたらビックリ。型を返すため、これらの呼び出しを連鎖させることができない。登録されたコールバックは順不同に発火される)。ここで、コールバックが実際のところいつ呼ばれるのかに関して説明する必要がある。完了した後でのみ呼び出されることができる。完了したスレッドかコールバックを作成したスレッドのいずれかにより呼び出されるという保証は無い。オブジェクトが完了した後のいつかに何らかスレッドにより実行される。コールバックが実行される順序は、たとえ同じアプリケーションを複数回実行した間だけでも決定してない。実際、コールバックは逐次的に呼び出されるとは限らず、一度に並行実行されるかもしれない。合計数を持たない場合がある。いう値になってしまう可能性もある。実行されることが保証される。クロージャがそれぞれ成功したか失敗した場合のみに呼ばれるという違いがある。実行されることとなる。複数のコールバックが登録された場合は、それらが実行される順序は定義されない。それどころか、コールバックは並行に実行される可能性がある。実装によっては明確に定義された順序となる可能性もある。例外を投げるコールバックがあったとしても、他のコールバックは実行される。(つまりコールバックに無限ループがあった場合)他のコールバックは実行されない可能性がある。