4

テンプレートselectにヘルパーを使用して作成する複数のドロップダウンリストを含むフォームがあります。optionsリストに入力する必要があるエンティティは、データベースから取得されます。ただし、データベースからの取得は非同期であるため、このAsyncのように、アクションで使用する必要があります。ただし、私の場合、待機する必要のある操作は1つではなく、サイズが不明なオブジェクトの操作です。では、ページをレンダリングする前に、リストを準備するために複数の-sを待つにはどうすればよいですか?それとも、それを行うためのより良い方法がありますか?findSeqFutureFuture

4

1 に答える 1

7

Scalaの未来は、それらを組み合わせる良い方法がなければ、何の価値もありません。

将来のオブジェクトのシーケンスがある場合は、それを将来のシーケンスに変換できます。

val futureList = Future.sequence(listOfFutures)

だから今、あなたは対処すべき単一の未来を持っています。さまざまな方法でfutureを組み合わせるためのその他の便利な関数については、Futureコンパニオンオブジェクトのドキュメントを参照してください。

先物で遊ぶ他の方法に興味がある場合(たとえば、それらの単調な性質のために単純な理解のためにそれらを組み合わせることができます)、Scala先物の入門書を見てより多くの洞察を得ることができます。

また、ReactiveMongoを使用している場合は、 Play2.xの列挙子/Iteratee実装に関するドキュメントを確認する価値があります。そのアプローチをマスターすれば、リアクティブなデータストリームをその場で組み合わせて実際の魔法を実行できるようになります。

于 2012-12-26T04:18:28.957 に答える