【发布时间】:2021-11-09 14:06:42
【问题描述】:
关于这个主题有很多讨论,但我仍然无法弄清楚我需要将哪一个用于我的用例。我有一个方法需要每 3 秒调用一次以获取更新的库存详细信息。
ngOnInit() {
this.getUpdatedStock(); // to get data while loading page for first time
this.interval = setInterval(()=> {
this.getUpdatedStock();
},3000)
}
而 getUpdatedStock() 在渲染数据之前调用服务并进行一些操作。
getUpdatedStock(){
this.stockService.getStockData().subscribe((data)=> {
this.latestStock = data ;
// few lines of code to highlight table headers based on response
})}
正如 setInterval() 所期望的那样,如果响应有延迟,并且在收到最后一个响应后 3 秒后调用没有发生,那么请求就会堆积起来。然后我发现以下线程解释了 rxjs 方法的使用
Why would I use RxJS interval() or timer() polling instead of window.setInterval()?
还有一些建议不要在该用例中使用 rxjs,因为它可能会增加包大小。现在我正在考虑将哪一个用于我的用例。我不希望在收到上一个请求的响应之前发生呼叫,并且在收到响应后应该 3 秒。是否可以使用 setInterval() 本身或者我必须使用 rxjs 。如果我必须使用 rxjs timer() 或 interval() 可以有人告诉我如何做到这一点,因为我没有直接调用服务。我正在调用触发服务调用并完成数据操作的方法。
【问题讨论】:
标签: angular timer rxjs setinterval