我有以下 Angular 2 服务,该服务每5秒获取一次数据:
import { Observable } from "rxjs/Rx";
import { Http, Response } from '@angular/http';
@Injectable()
export class DataService{
getData():{
return Observable
.interval(5000)
.flatMap(() => this.http.get('http://some_url'))
.map((res: Response) => res.json())
}
有没有办法让这项服务在开始时执行请求?否则它将在第一次执行之前等待5秒。
答案 0 :(得分:3)
将interval
替换为timer
,因为它允许您指定初始延迟:
getData():{
return Observable
.timer(0, 5000)
.flatMap(() => this.http.get('http://some_url'))
.map((res: Response) => res.json())
}