假设我有 1 个用于身份验证的指令。身份验证后,我想登录。这是我到目前为止所做的:
get(...) {
myauthdirective() { v =>
myloggingdirective(v) {
...
}
}
}
因此,我想将其转换为单个指令,而不是每次需要进行身份验证时都必须有 2 个。
我尝试使用平面地图,但这似乎不起作用,因为身份验证返回 Directive1 而 logRequestResponse 返回 Directive0。
// Does not work!
authenticate(myAuthMagnet).flatMap {
case ca: returnType => logRequestResponse(LoggingMagnet(logme(ca)))
}
所以我用地图尝试了它,但它似乎没有进入我的日志记录磁铁功能。
// Does not work either!
authenticate(myAuthMagnet).map {
case ca: returnType =>
logRequestResponse(LoggingMagnet(logme(ca))) // does not go into logme function for some reason
ca
}
我也不能直接调用 logme 因为我也需要请求和响应对象。
有没有办法用 2 个返回不同指令类型的指令创建一个新指令?谢谢。