私は反応性/オブザーバブルの概念を初めて使いました。再生フレームワーク - データのリストを返す適切な方法は何ですか?
は、私はこのようなProducts
を取得するためのルートを定義しました:
GET /products controllers.ProductController.findProducts
とコントローラでの実装:
def findProducts() = secured.async { implicit request =>
productDao.find()
.map(products => Ok(Json.toJson(products)))
// products: List[Product]
.recover(errHandler)
}
その後は、クライアント側で、私はよこのように電話をかけて登録する:
let sub = this.find()
.subscribe(
products => {
this.products = products;
this.productsBehaviorSubject.next(this.products);
if (!!sub)
sub.unsubscribe();
},
error => console.log("Error fetching units: " + error)
);
私はデータを取得すると、私はそれから退会します。 (基本的にPromisesのように使用します)。
これは正しい方法だと思います。 1つの応答でList[Product]
を返す代わりに、私はいくつかの応答で返すべきですか?多分
def findProducts() = secured.async { implicit request =>
productDao.find()
.map(products => {
products.map(p => Ok(Json.toJson(p))) // haven't tried this yet
})
// products: List[Product]
.recover(errHandler)
}
..:。
this.find()
.take(50)
.subscribe(
product => {
this.products.push(product)
},
error => console.log("Error fetching units: " + error),
() => this.productsBehaviorSubject.next(this.products)
);