Javascript RxJs:如何;“听”;在订阅收到流时更改订阅?

Javascript RxJs:如何;“听”;在订阅收到流时更改订阅?,javascript,angular,rxjs,observable,angular2-http,Javascript,Angular,Rxjs,Observable,Angular2 Http,我对Angular 2和Observables是个新手,但我还没有找到一种方法来“监听”订阅在收到流时的更改,我甚至不知道这是否可能,或者这是否是正确的方法 这就是我过去对承诺所做的: // Constructor and more code // ... ngOnInit(): void { this.loading.present(); this.getItems() .then(() => this.loading.dismiss()); } getItem

我对Angular 2和Observables是个新手,但我还没有找到一种方法来“监听”订阅在收到流时的更改,我甚至不知道这是否可能,或者这是否是正确的方法

这就是我过去对承诺所做的:

// Constructor and more code
// ...

ngOnInit(): void {
  this.loading.present();

  this.getItems()
      .then(() => this.loading.dismiss());
}

getItems(): Promise {
  return this.itemService
    .getItems()
    .then(items => this.items = items);
}

refresh(refresher): void {
  this.getItems()
      .then(() => refresher.complete());
}
我尝试过订阅/观察,但我不知道如何:

// Constructor and more code
// ...

ngOnInit(): void {
  this.loading.present();

  this.getItems()
      .subscribe(() => this.loading.dismiss());
}

getItems(): Subscription {
  return this.itemService
    .getItems()
    .subscribe(items => this.items = items);
}

refresh(refresher): void {
  this.getItems()
      .subscribe(() => refresher.complete());
}

当然,我得到了一个编译错误:
属性'subscribe'在'Subscription'类型上不存在。
,关于如何通过Observables(RxJS)实现这一点的任何帮助?

订阅是一个侦听器,你不能侦听器,是吗

相反,您需要返回一个
可观察的
,以便能够订阅。将您的功能更改为如下(未测试):

getItems():可观察{
让obs=this.itemService.getItems().share();
obs.subscribe(items=>this.items=items);
返回obs;
}

非常感谢您!我知道我做错了,只是不知道如何做对
getItems(): Observable<any> {
  let obs = this.itemService.getItems().share();
  obs.subscribe(items => this.items = items);
  return obs;
}