Typescript 每X秒从web服务更新表中的项目列表

Typescript 每X秒从web服务更新表中的项目列表,typescript,angular,Typescript,Angular,我有一个简单的组件,用于从web服务检索项目列表 export class EventsList implements OnInit { events: Observable<Event[]>; constructor(public eventsService: EventsService) { } ngOnInit(): void { this.eventsService.update(); this.events = t

我有一个简单的组件,用于从web服务检索项目列表

export class EventsList implements OnInit {
    events: Observable<Event[]>;

    constructor(public eventsService: EventsService) { }

    ngOnInit(): void {
        this.eventsService.update();
        this.events = this.eventsService.events;
    }
}

@Injectable()
export class EventsService {
    events: Observable<Event[]>;

    update(): void {
        let url = 'event/view';
        let res = this.http.get(url);
        this.events = res
            .map((response: Response) => {
                return (<any>response.json()).map(item => {
                    return item;
                });
            });
    }
}
导出类事件列表实现OnInit{
事件:可观察;
构造函数(公共事件服务:事件服务){}
ngOnInit():void{
this.eventsService.update();
this.events=this.eventsService.events;
}
}
@可注射()
导出类事件服务{
事件:可观察;
update():void{
让url='事件/视图';
让res=this.http.get(url);
this.events=res
.map((响应:响应)=>{
return(response.json()).map(item=>{
退货项目;
});
});
}
}
我希望通过每X秒轮询一次web服务来保持更新。我该怎么做


提前感谢

您可以使用
Observable.interval
flatMap
操作符,如下所述:

update(): void {
    let url = 'event/view';
    let res = Obsersable.interval(2000).flatMap(() => {
      return this.http.get(url);
    });
    this.events = res
      .map((response: Response) => {
        return (<any>response.json()).map(item => {
          return item;
        });
      });
}
update():void{
让url='事件/视图';
设res=Obsersable.interval(2000).flatMap(()=>{
返回此.http.get(url);
});
this.events=res
.map((响应:响应)=>{
return(response.json()).map(item=>{
退货项目;
});
});
}

您可以使用
Observable.interval
flatMap
操作符,如下所述:

update(): void {
    let url = 'event/view';
    let res = Obsersable.interval(2000).flatMap(() => {
      return this.http.get(url);
    });
    this.events = res
      .map((response: Response) => {
        return (<any>response.json()).map(item => {
          return item;
        });
      });
}
update():void{
让url='事件/视图';
设res=Obsersable.interval(2000).flatMap(()=>{
返回此.http.get(url);
});
this.events=res
.map((响应:响应)=>{
return(response.json()).map(item=>{
退货项目;
});
});
}