Je suis nouveau dans le concept réactif/observables.jouer cadre - quelle est la bonne façon de retourner la liste des données?
J'ai défini un itinéraire pour se Products
comme ceci:
GET /products controllers.ProductController.findProducts
et la mise en œuvre dans le contrôleur:
def findProducts() = secured.async { implicit request =>
productDao.find()
.map(products => Ok(Json.toJson(products)))
// products: List[Product]
.recover(errHandler)
}
Ensuite, sur le côté client, je suis faire l'appel et vous y abonner comme ceci:
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)
);
Dès que j'obtiens les données, je me désinscrit de celles-ci. (essentiellement l'utiliser comme promesses).
Je me demande donc si c'est la bonne façon de le faire. Au lieu de retourner List[Product]
dans une seule réponse, devrais-je retourner dans plusieurs réponses ??
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)
}
puis sur le côté client .. peut-être.
this.find()
.take(50)
.subscribe(
product => {
this.products.push(product)
},
error => console.log("Error fetching units: " + error),
() => this.productsBehaviorSubject.next(this.products)
);