Javascript RxJs:如何;“听”;在订阅收到流时更改订阅?
我对Angular 2和Observables是个新手,但我还没有找到一种方法来“监听”订阅在收到流时的更改,我甚至不知道这是否可能,或者这是否是正确的方法 这就是我过去对承诺所做的: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
// 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;
}