わかりました、Akka Futures を返す関数への一連の呼び出しがあり、flatMap と map を次のように使用してそれらを連鎖させています。
doAsyncCall(..).flatMap { res1 =>
doAsyncCall2(..).flatMap { res2 =>
doAsyncCall3(..).map { res3 =>
res
}
}
}
これは、さまざまな関数呼び出しに分散できます。これらの doAsyncCallX 呼び出しのそれぞれが Future[Result] を返すようになりました。これらの結果を構成し、最終的にチェーン内のすべての結果の構成された結果を返すことができるまでチェーンに渡したいと思います。
これを行うために、各 doAsyncCallX が前の結果の暗黙的なパラメーターを受け取り、取得した結果を前の結果と結合することを考えました。問題は、ライブラリの使用を次のような暗黙の値で散らかさない限り、これを行う方法がわからないことです。
doAsyncCall(..).flatMap { res1 =>
implicit val implicitRes1 = res1
doAsyncCall2(..).flatMap { res2 =>
implicit val implicitRes2 = res2
doAsyncCall3(..).map { res3 =>
res
}
}
}
私がやりたいことは、 flatMap のアプリケーションをインターセプトして、前の応答が次の doAsyncCallX 呼び出しの暗黙的なパラメーターとして正しく渡されるようにすることです。これを達成する方法について何か考えはありますか?