onSuccess ブロックを新しいメソッドに分解するように、次のコード フラグメントを変更したいと思います。JSON マーシャリングは引き続き機能するはずです。
(patch & parameterMap & asJson) { params =>
...
val f:Future[ResposeData]=createResponse(...)
onSuccess(f){complete(_)}
}
私は次のような方法が欲しいです:
def handleSuccess(f:Future/FutureMagnet)(implicit ...)
単純なリファクタリングはうまくいきません。多くの組み合わせを試しましたが、正しい署名もコードも機能していません。
例:
def handleSuccess(f: Future[ResposeData]): Unit = {
onSuccess(f) { complete(_) }
}
Error:(43, 15) type mismatch;
found : scala.concurrent.Future[ResponseData]
required: spray.routing.directives.OnSuccessFutureMagnet
onSuccess(f) {
^
署名を変更すると、別のエラーが発生します。
def handleSuccess(f: OnSuccessFutureMagnet)
Error:(44, 18) spray.routing.Directive[f.Out] does not take parameters
onSuccess(f) {
^
多分これは簡単なことですが、私はスプレーするのが初めてです。ですので、どなたかヒントを頂ければ幸いです。
ありがとう