我有一个使用Observable从数据库获取数据的服务。看来它只获得一次数据。我希望当用户向数据库添加数据然后流到Angular时它会监听。
获取所有数据的服务
getAllProj(): Observable<NouveauProjet[]> {
return this.http.get<NouveauProjet[]>(
"http://127.0.0.1:8081/api/proj/projets"
);
}
服务添加数据
addProj(nouveauProjet: NouveauProjet): Observable<any> {
return this.http.post<NouveauProjet[]>(
"http://127.0.0.1:8081/api/proj/projets",
nouveauProjet
);
}
使用服务时,我只订阅它们
getAllProj() {
this.ajoutProj.getAllProj().subscribe(
response => {
console.log("hello"+response);
this.nouveauProjet=response;
},
error => console.log(error)
);
我认为当将新数据添加到数据库时,Observable仍会监听服务器,但事实并非如此,因此如何将我的Observable转换为数据流。
简短的答案是Websockets
。这实际上是服务器端的问题。
除非您已告知数据库更新,否则您的API将永远不会“推”出数据,最简单的方法是使用Websockets。我将提供一个示例实现,但是有很多变量,尤其是在监视数据库更新并相应地推送信息的情况下。
一个Observable是一个数据流。如果您在服务中为同一API调用设置了多个订阅,则当从API中提取新数据时,每个订阅都会获得新值。问题在于HTTP请求仅仅是源自客户端的“请求”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句