【发布时间】:2016-02-22 14:10:30
【问题描述】:
我有三个功能。
myFunc1:
def myFunc1(cluster: String, consumer: String) = Action.async { implicit request =>
kafkaManager.getConsumerIdentity(cluster, consumer) map { errorOrT =>
errorOrT.fold(
error => BadRequest(Json.obj("msg" -> error.msg)),
T=> {
Ok(Json.obj("summary" -> getSummary(cluster, consumer, T.Map.keys)))
})
}
获取摘要:
def getSummary(cluster: String, consumer: String, myMap: Iterable[String]) = {
var topics: Map[String, JsObject] = Map()
myMap.map { key =>
topicSummary(cluster, consumer, x).map(r => {
r.fold(l => {}, value => {
topics += key -> value
})
})
}
topics
}
和主题摘要:
def topicSummary(cluster: String, consumer: String, topic: String) = {
kafkaManager.getConsumedTopicState(cluster, consumer, topic).map { errorOrTopicSummary =>
errorOrTopicSummary.map(
topicSummary => {
Json.obj("totalLag" -> topicSummary.totalLag.getOrElse(None).toString(), "percentageCovered" -> topicSummary.percentageCovered)
})
}
}
结果是:
{"summary":()}
问题在于 getSummary 没有等待结果。 我很想听听如何解决它的建议
【问题讨论】:
标签: asynchronous playframework playframework-2.0 playframework-2.2