RxJs:如何“倾听”在订阅接收到流时对其进行更改
RxJs: How to "listen" to change on a subscription when it receives a stream?
我是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());
}
当然,我得到一个编译错误:Property 'subscribe' does not exist on type 'Subscription'
,任何帮助如何实现这与可观察对象(RxJS)?
Subscription
是侦听器,你不能听侦听器,对吗?
相反,您需要返回一个Observable
以便能够订阅。将你的函数修改如下(未测试):
getItems(): Observable<any> {
let obs = this.itemService.getItems().share();
obs.subscribe(items => this.items = items);
return obs;
}
相关文章:
- 如何播放部分音频文件
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何在映射数组中添加换行符
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使用动画实现纸张推车
- 如何编写HTML输入的JS内联
- 如何在生成下载文件时显示加载动画
- 如何使用jQuery选择下拉列表的值
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在下面的ES6循环中获得前面的文本
- 如何倾听孩子们的心声;s儿童停止传播的事件
- 对象的事件委托;如何倾听事件
- RxJs:如何“倾听”在订阅接收到流时对其进行更改
- 如何倾听“变化”?事件,同时也绑定到属性