rx.js 的冷和热观察

http://cn.rx.js.org/manual/overview.html#h213

https://rxjs-cn.github.io/rxjs5-ultimate-cn/content/hot-n-cold-observables.html

冷观察

const {
Observable
} = require('rxjs');
var clock = Observable
.interval(1000)
.take(5)
.map(x => x+1)
setTimeout(() => {
clock.subscribe(x => console.log(` b: ${x}`))
}, 4500);
clock.subscribe(x => console.log(`a: ${x}`));
//
>node test/test.js
a: 1
a: 2
a: 3
a: 4
a: 5
b: 1
b: 2
b: 3
b: 4
b: 5

热观察

const {
Observable
} = require('rxjs');
var clock = Observable
.interval(1000)
.take(5)
.map(x => x+1)
.publish()
.refCount()
setTimeout(() => {
clock.subscribe(x => console.log(` b: ${x}`))
}, 4500);
clock.subscribe(x => console.log(`a: ${x}`));
//
>node test/test.js
a: 1
a: 2
a: 3
a: 4
a: 5
b: 5

共享(热)

const { interval, of, merge, concat } = require('rxjs');
const {share, take} = require('rxjs/operators');
let x$ = interval(500).pipe( take(5), share() )
x$.subscribe(v => console.log(`A$ => ${v}`))
setTimeout(()=>{
x$.subscribe(v => console.log(` B$ => ${v}`))
}, 2000)
λ node main.js
A$ => 0
A$ => 1
A$ => 2
A$ => 3
B$ => 3
A$ => 4
B$ => 4
posted @   Ajanuw  阅读(363)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
阅读排行:
· DeepSeek V3 两周使用总结
· 回顾我的软件开发经历(1)
· C#使用yield关键字提升迭代性能与效率
· 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
· 4. 使用sql查询excel内容
点击右上角即可分享
微信分享提示