在Angular中创建数据流

哈姆扎·哈达德(Hamza Haddad)

我有一个使用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转换为数据流。

Joshrathke

简短的答案是Websockets这实际上是服务器端的问题。

除非您已告知数据库更新,否则您的API将永远不会“推”出数据,最简单的方法是使用Websockets。我将提供一个示例实现,但是有很多变量,尤其是在监视数据库更新并相应地推送信息的情况下。

一个Observable是一个数据流。如果您在服务中为同一API调用设置了多个订阅,则当从API中提取新数据时,每个订阅都会获得新值。问题在于HTTP请求仅仅是源自客户端的“请求”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章