如何在一定间隔内从服务器获取数据?

时间:2018-08-14 21:06:49

标签: javascript angular typescript rxjs

我使用angular6,我尝试通过5秒间隔从服务器获取json。

JSFIDDLE

这是我的服务

getExample(): Observable<any> {
    console.log('getExample');
    return Observable
      .timer(0, 5000)
      .flatMap(() => this.httpClient.get('https://jsonplaceholder.typicode.com/posts'))
      .map((r) => {
        return r;
      });
  }

请帮助修复此代码。

PS:更简单的服务worked没问题

1 个答案:

答案 0 :(得分:1)

RxJS 6已更新为使用pipeable operators。另外,计时器imports from a different path。您应该直接导入timer(在这种情况下为interval),并将.pipe与所需的运算符一起使用。最后,使用mergeMap代替flatMap

import { interval } from 'rxjs';
import { mergeMap, map } from 'rxjs/operators';

return interval(5000).pipe(
  mergeMap(() => this.httpClient.get('https://jsonplaceholder.typicode.com/posts')),
  map((r) => {
    console.log(r);
    return r;
  })
);