0

私は "org.mongodb.scala" %% "mongo-scala-driver" % "1.0.1" で playframework を使用し、そのコードを持っています:

  val collection = Mongo.db.getCollection("regionAuth")

  def getRegions = {

    val find: Observable[Document] = collection.find()

    Logger.info("regions searching")

    find.subscribe(new Observer[Document] {

      override def onError(e: Throwable): Unit = Logger.error("regions error", e)

      override def onSubscribe(subscription: Subscription): Unit = Logger.info("subscribed")

      override def onComplete(): Unit = Logger.info("regions done")

      override def onNext(result: Document): Unit = Logger.info("region accepted")
    })

    find.map { region =>
      Logger.info("region accepted by map")
      region
    }

    find.foreach(_ => Logger.info("region accepted by foreach"))

    find.toFuture().onComplete {
      case Success(r) => Logger.info("regions accepted as future seq " + r.size)
      case Failure(e) => Logger.error("regions error as future", e)
    }

    find
  }

そしてそれは印刷します:

[情報] アプリケーション - 地域検索

[情報] アプリケーション - 購読済み

[情報] アプリケーション - foreach が受け入れたリージョン

[情報] アプリケーション - foreach が受け入れたリージョン

[情報] アプリケーション - foreach が受け入れたリージョン

[情報] アプリケーション - 将来の seq 3 として受け入れられる地域

subscribeのイベントとマップが機能しないのはなぜですか?

4

1 に答える 1