У меня есть ситуация, подобная ниже, где, если запрос поступает из пользовательского интерфейса, запрос сначала должен быть проверен, прежде чем делать что-либо еще. Однако, если запрос не был отправлен из пользовательского интерфейса, но, скажем, через EDI ->, в этом случае существует некоторый biz req, как «id» дочерних данных заполняется в запросе после сохранения родительских данных и использования родительского идентификатора данных в разделе дочерних данных , эта деталь не важна для этого вопроса.последовательность вызова функции изменения на основе параметра запроса
Для того, чтобы изменить порядок вызовов метода внутри a for
Понимание У меня есть нечто похожее на ниже, которое выглядит битовым и не идиоматичным. есть ли лучший способ достичь этого?
def persistData(req : Request) = {
req.actionFromUI match{
case Some(_) => for{
validatedReq <- validateRequest(req) //1st thing
transformedReq <- transformRequest(validatedReq)
persitedReq <- persistRequestData(transformedReq)
}
case None => for{
transformedReq <- transformRequest(validatedReq)
persitedReq <- persistRequestData(transformedReq)
validatedReq <- validateRequest(persitedReq) //last thing
}
}
}