使用interval()方法设置函数执行时间,然后在函数中设置请求,即可实现定时发送请求。interval是window.setInterval的Angular包装形式。
angular2定时发请求的实现:
// 间隔 1s 请求 this.timer$ = interval(1000) .pipe( // 取消过时的请求值 switchMap(() => { return this.http.get(API); }), ) .subscribe( (res: any) => { // 百分数处理逻辑 }, () => { this.timer$.unsubscribe(); }, () => { this.timer$.unsubscribe(); }, );
interval 返回一个可观察对象,它可以周期性的发出递增数值,但是第一次发出值是在第一个周期结束之后执行的。
interval:
window.setInterval的Angular包装形式。Fn是每次延迟时间后被执行的函数。
间隔函数的返回值是一个承诺。这个承诺将在每个间隔刻度被通知,并且到达规定迭代次数后被取消,如果迭代次数未定义,则无限制的执行。通知的值将是运行的迭代次数。取消一个间隔,调用$intreval.cancel(promise)。
备注:当你执行完这项服务后应该把它销毁。特别是当controller或者directive元素被销毁时而$interval未被销毁。你应该考虑到在适当的时候取消interval事件。
以上就是angular2定时发请求如何实现?的详细内容,更多请关注易知道|edz.cc其它相关文章!