如何在RxJS中创建Cold Subject?

斯蒂芬·苏沃洛夫(Stepan Suvorov)

默认情况下,RxJs主题为“”,但是是否可以创建“”主题以从一开始就获取从其传播的所有值?

即:

let s = new Subject();
s.next(1);
s.next(2);
s.subscribe(n => console.log(n)); //to get here 1 2 3
s.next(3);
Quinten P.

您可以使用ReplaySubject来做到这一点。要记住的一件事是,ReplaySubject期望在创建过程中有一个数字知道它应该缓冲多少个值。您不能缓冲所有元素。

const subject = new Rx.ReplaySubject(10);

subject.next("1");
subject.next("2");
subject.next("3");
subject.next("4");
subject.next("5");

subject.subscribe(
  (val) => console.log(val)
);    

subject.next("6");

// Logs out 
// 1
// 2
// 3
// 4
// 5
// 6

jsbin:http://jsbin.com/rocofa/edit?js,控制台

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何正确使用rxjs Subject?

如何从Subject创建Observable,而又不将RxJs v5中的Subject暴露给使用者

RxJS:takeUntil忽略Subject事件

错误:rxjs / Subject“'没有导出的成员'Subject'

找不到模块'rxjs / subject / BehaviorSubject'

Rxjs Subject不会立即发出数据

RXJS Subject-阻止传播错误

如何在RxJava2中使用void Subject?

如何获取RxJS Subject或Observable的当前值?

如何为可观察的Subject RxJS分配初始值?

如何使Subject的rxjs节流阀正常工作?

rxjs中的Observable和Subject之间有什么区别?

向rxjs / Angular2中的Subject添加去抖动

Subject 发出后如何发出延迟值?

Angular中的Subject vs BehaviorSubject vs ReplaySubject

Angular中的Subject vs BehaviorSubject vs ReplaySubject

Rxjs:Observable是由Subject的asObservable方法产生的,与源Subject相同吗?

Rxjs Subject#next异步还是不异步?

rxjs Subject.create已过时-应该改用什么?

Rxjs:FlatMap内部的Subject的适当性以避免意外触发

使用Subject.create创建的主题无法退订

如何从大量文件中提取以“ Subject:”开头的行?

如何使用 angular 的 debounceTime 对 Subject 进行单元测试

在RxJava中实现自定义Subject <T,E>

获取Angular服务中Subject.asObservable()的当前值

在rspec示例中隐式使用subject不起作用

将阵列存储在XMP dc:Subject字段中

重新订阅Angular 2中未订阅的Rx.Subject

如何使用服务在两个组件之间共享对象数据(rxjs subject)