2016-05-23 40 views
0

我有一个简单的组件,用于从Web服务中检索项目列表。每X秒从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; 
       }); 
      }); 
    } 
} 

我想通过每隔X秒轮询Web服务来保持此更新。我应该怎么做?

在此先感谢

回答

3

您可以使用Observable.intervalflatMap操作如下所述:

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; 
     }); 
     }); 
}