【发布时间】:2014-05-21 06:14:14
【问题描述】:
这是来自https://github.com/eigengo/activator-spray-twitter/blob/master/src/main/scala/core/tweetstream.scala的代码
~>(波浪号箭头)运算符是做什么的?我想那一定是HttpRequest的操作符,但是我在spray API中找不到这样的操作符。
我知道authorize是一个返回(HttpRequest => HttpRequest)的函数,所以val rq一定是一个HttpRequest,它被authorize的返回函数应用后返回值。
def receive: Receive = {
case query: String =>
val body = HttpEntity(ContentType(MediaTypes.`application/x-www-form-urlencoded`), s"track=$query")
val rq = HttpRequest(HttpMethods.POST, uri = uri, entity = body) ~> authorize
sendTo(io).withResponsesReceivedBy(self)(rq)
case ChunkedResponseStart(_) =>
case MessageChunk(entity, _) => TweetUnmarshaller(entity).fold(_ => (), processor !)
case _ =>
}
提前致谢!
【问题讨论】: