Javascript 定期更新角度2中的可观测值
我想从http链接每隔5秒点击并显示一次,而且似乎使用angular2,一个可观察到的将是一种方式Javascript 定期更新角度2中的可观测值,javascript,events,angular,observable,Javascript,Events,Angular,Observable,我想从http链接每隔5秒点击并显示一次,而且似乎使用angular2,一个可观察到的将是一种方式 getPhaseVotes(issue: string) { return this.http.get(this.URL + 'issue/' + issue + '/getPhaseVotes') .subscribe(data => this.phase_votes = data.json(), err => conso
getPhaseVotes(issue: string) {
return this.http.get(this.URL + 'issue/' + issue + '/getPhaseVotes')
.subscribe(data => this.phase_votes = data.json(),
err => console.log(err),
() => this.getStatus(issue));
}
我应该如何每5秒更新一次?您可以使用
可观察的操作符的interval
:
@Injeactable()
export class SomeService {
constructor(private http:Http) {}
getPhaseVotes(issue: string) {
return Observable.interval(5000).flatMap(() => {
return this.http.get(this.URL + 'issue/' + issue + '/getPhaseVotes')
.map(res => res.json());
});
}
}
这样,您需要调用getPhaseVotes
方法并订阅它。每5秒,HTTP请求将透明执行,并在订阅的回调中提供结果:
@Component({
(...)
})
export class SomeComponent {
constructor(private service:SomeService) {
this.service.getPhaseVotes('someissue')
.subscribe(data => this.phase_votes = data,
err => console.log(err),
() => this.getStatus(issue));
}
}
本文可以在其“轮询”部分为您提供更多提示:
您可以使用可观察的的间隔操作符:
@Injeactable()
export class SomeService {
constructor(private http:Http) {}
getPhaseVotes(issue: string) {
return Observable.interval(5000).flatMap(() => {
return this.http.get(this.URL + 'issue/' + issue + '/getPhaseVotes')
.map(res => res.json());
});
}
}
这样,您需要调用getPhaseVotes
方法并订阅它。每5秒,HTTP请求将透明执行,并在订阅的回调中提供结果:
@Component({
(...)
})
export class SomeComponent {
constructor(private service:SomeService) {
this.service.getPhaseVotes('someissue')
.subscribe(data => this.phase_votes = data,
err => console.log(err),
() => this.getStatus(issue));
}
}
本文可以在其“轮询”部分为您提供更多提示: