【发布时间】:2016-06-26 19:33:10
【问题描述】:
我正在使用以下方法来创建一个可观察的以每 5 秒运行一次 API 调用并检查新的用户活动:
getLastActivity()
{
return Observable.interval(5000).startWith(0)
.switchMap(() => this.http.get('user-activity'))
.map(res => res.json());
}
我在显示活动的组件中订阅它,这是我的侧边栏(所有页面)。
let activitySub = this._myService.getLastActivity()
.subscribe( data => this.activities = data.user_activities);
有时用户正在做一个活动,我想在 sidenav 中显示新添加的活动,而不是等待 1-5 秒(可观察时间)。
使用对象push 手动将操作添加到活动对象数组不是一种选择,因为这些操作是在服务器端插入的。
当我尝试运行时:
this.getLastActivity.subscribe(() =>{});
我收到了一个错误,因为我已经订阅了这个 observable。
我的问题:如何在 observable 下次运行的剩余时间尚未过去的情况下执行 observable API 调用?
【问题讨论】:
标签: angular