Typescript 每X秒从web服务更新表中的项目列表
我有一个简单的组件,用于从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
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=>{
退货项目;
});
});
}