Angular 更新源时有 2 个可观察到的变化

Angular 2 observable changes when source is updated

现在我正在尝试根据这篇文章写一个 rss reader: https://www.becompany.ch/en/blog/2016/09/19/angular2-rss-reader

正如我所见,提要来自:

return this.http.get(this.rssToJsonServiceBaseUrl + url)
            .map(this.extractFeeds)
            .catch(this.handleError);

是否可以实时绑定?我的意思是,如果将新的 item/news 发布到提要,那么我使用结果的组件将自动更新...... 我正在考虑它,因为 angularfire2 能够进行这种实时绑定,所以当它背后的数据库是 updated/modified 时,我的视图只是刷新而没有任何 navigation/browser 刷​​新..

谢谢。

(正如我所看到的,当我在模板中使用带有 |async 管道的 observable 本身时,有一个选项......不幸的是我在 Angular2 中找不到关于 Observable 本身的合适文章......人们总是比较它到其他我不知道的东西..)

虽然Http不是双向通道,你可以定期拉取,这样的事情应该很容易:

const FETCH_INTERVAL = 30000; // pull every 30 secs

class MyService {

  public myFeeds: Observable < Feed[] >

  constructor(private http: Http) {
    this.myFeeds = Observable.timer(0, FETCH_INTERVAL)
      .switchMap(() => this.http.get(this.rssToJsonServiceBaseUrl + url))
      .map(this.extractFeeds.bind(this))
      .catch(this.handleError.bind(this))
      .share(); // share to avoid recreating an observable on every subscribtion
  }

  private extractFeeds(resp: Response): Feed[] {
    // do stuff (check for duplicates, etc...)
    return feeds;
  }

  private handleError(err) {
    // do stuff
  }

}