0 rxjs typescript rxjs5 angular-observable
我正在尝试找出一种好方法来表明 ReplaySubject 当前为“空”。
import {ReplaySubject} from 'rxjs/ReplaySubject';
const rs = new ReplaySubject<Object>();
// ...
constructor(){
this.sub = rs.subscribe(...);
}
Run Code Online (Sandbox Code Playgroud)
每次调用构造函数时,它将重播主题中的所有项目。然而我的问题是 - 是否有一些我们可以监听的事件,告诉我们主题何时变空?
我唯一能想到的是在主题完成时触发自定义/不同的事件,如下所示:
rs.next({done:true});
Run Code Online (Sandbox Code Playgroud)
将数据传递给 next() 方法是表示 ReplaySubject (暂时)为空/没有事件的最佳方式吗?
因为Subject也是一个Observer,所以你可以complete()在最终next()调用之后调用。然后你可以用方法的第三个参数来监听它subscribe(...)。
const rs = new ReplaySubject<Object>();
rs.next({a: 1})
rs.complete()
rs.subscribe(
obj => console.log(obj),
error => {},
() => console.log('completed')
);
// Outputs
// {a: 1} completed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3982 次 |
| 最近记录: |