2

最初の Web サービスの結果を使用して、2 番目の Web サービスを呼び出したいと考えています。
以下は、私の意図を強調するコードです。
ちなみに、IntelliJ では正常にコンパイルされます (IDE のバグの可能性があります)。

  def get = {
    for {
      respA <- WS.url(url1).get
      id <- respA.body.split(",").take(2)
      respB <- WS.url(url2 + id).get // Here is a compile error
    } yield {
      getMyObjects(respB.xml)
    }
  }
  • respA = は、次の呼び出しで使用される ID を持つカンマ区切りのリストです。
  • respB = は、yield メソッドで解析する XML 応答です。

コンパイルエラーPlay Frameworkは私に与えます:

type mismatch; 
found : scala.concurrent.Future[Seq[MyObject]] 
required: scala.collection.GenTraversableOnce[?]

コンパイルエラーがおかしいと思います。

  1. その行にどのようFuture[Seq[MyObject]]存在することができますか?
  2. コンパイルする 2 行目と変わらないはずですよね?
4

1 に答える 1