Angular前端无法立即更新

时间:2019-04-17 13:56:34

标签: node.js angular express

我将Angular用作前端并表示为服务器。我正在通过http将新对象从前端(Angular)传递到服务器(express)。

角度文件:

 this.issuesService.addIssue(newIssue).subscribe(); //after adding that navigating to issues link where it displays all the issues
 this.router.navigate(["/issues"]);

当我列出所有问题时,它不会在第一时间更新。 但是当我刷新或再次访问该链接时,就在那里。

表达文件:

  router.post('/addIssue', (req, res) => {
    ...
   newIssue = req.body...//
   issues.push(newIssue);//that new issue successfully added - no problem here
  });

如何动态进行更新(快递更新后立即显示列表)?

1 个答案:

答案 0 :(得分:3)

最可能是因为您在HTTP调用完成之前将用户重定向到/issues

this.issuesService.addIssue(newIssue)
    .subscribe(() => 
       this.router.navigate(["/issues"]);   
    );

addIssue方法需要花费一些时间(异步),而this.router.navigate(["/issues"]);将立即发生(同步)。

编辑:仅需说明,this.router.navigate(["/issues"]);也是异步的,但其发生速度比HTTP调用快。基本上,这是一个您可以等待解决的承诺,所以有些事情(代码中不一定需要)。

祝你好运!