rxjs5 - 如何在 RxJS 中创建冷主题?

标签 rxjs5

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

IE。:

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);

最佳答案

您可以使用 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,console

关于rxjs5 - 如何在 RxJS 中创建冷主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39947383/

相关文章:

javascript - 如何缓冲最新值,直到另一个值通过 rxjs 到达另一个序列?

angular - 使用@ngrx/effects 调度多个 Action ,同时确保它们按顺序执行

rxjs - 当内部可观察完成时,switchMap 似乎没有完成

javascript - redux-observable 和 rxjs。将 promise 转换为 Observable - epic 只被调用一次

javascript - HttpClient 和 Rxjs

angular - 如何使用@ngrx/store 获取 State 对象的当前值?

javascript - 触发 takeUntil 操作时执行函数

javascript - RxJS Interval 无延迟

javascript - 继续跟踪 RxJs 中的 "original"项目

javascript - 通过链接包装 Rx JS Observable