如何在使用间隔时立即启动Angular 2 Observable

时间:2017-02-25 03:36:36

标签: angular rxjs

我有以下 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秒。

1 个答案:

答案 0 :(得分:3)

interval替换为timer,因为它允许您指定初始延迟:

getData():{
  return Observable
    .timer(0, 5000)
    .flatMap(() => this.http.get('http://some_url'))
    .map((res: Response) => res.json())
}