Scala 将两个方向0与&

Scala 将两个方向0与&,scala,akka-http,Scala,Akka Http,我预定义了两个方向0,如下所示: def mySetCookie = if(cookies.length == 1) setCookie(cookies(0)) else if(cookies.length > 1) setCookie(cookies(0), cookies.tail: _*) else pass def mySetHeader = if(headers.length > 0) respondWithHeaders(headers: _*) else pass 在

我预定义了两个方向0,如下所示:

def mySetCookie = if(cookies.length == 1) setCookie(cookies(0)) else if(cookies.length > 1) setCookie(cookies(0), cookies.tail: _*) else pass
def mySetHeader = if(headers.length > 0) respondWithHeaders(headers: _*) else pass
在尝试同时使用这两个指令时,以下操作有效:

mySetCookie
{
  mySetHeader
  {
    complete(StatusCodes.OK)
  }
}
但以下情况并非如此:

mySetCookie & mySetHeader
{
  complete(StatusCodes.OK)
}
我得到以下信息:

Error:(116, 21) type mismatch;
found   : akka.http.scaladsl.server.Route
(which expands to)  akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
required: akka.http.scaladsl.server.ConjunctionMagnet[Unit]

我理解错误信息,但有没有一种方法可以像我想要实现的那样将这两个指令组合起来?

指令通常需要用括号括起来,就像nicodp建议的那样。试试mySetCookies&mySetHeader

你有没有试过把它们括在括号里:mySetCookie&mySetHeader?的确,没有成功。希望你能把它作为一个答案。