rxjs

import {Subject,BehaviorSubject,ReplaySubject,AsyncSubject} from 'rxjs'
const subject$ = new Subject()
/* 上面的不会被订阅到 */
subject$.next(1)
// Subject会按顺序订阅,从开始订阅,后面发布的内容都会被订阅(只能获取到订阅后的内容)
subject$.subscribe((value)=>{
    console.log(`订阅者A:${value}`);  
})
subject$.next(22)
subject$.next(23)
subject$.next(4)


/* 
BehaviorSubject的特点是把最新的值发布给订阅者,可以获取到最后发布的内容(可以获取到订阅之前的内容)
*/
const behavior$ = new BehaviorSubject('a')
behavior$.next('bbb')

behavior$.subscribe((value)=>{
    console.log(`订阅者A_behavior:${value}`);  
})
behavior$.next('b')
behavior$.next('c')

/* 
第一个参数 bufferSize指定了缓存的大小,默认为 Infinity,即缓存所有发出的值,是一个「空间限制」。
第二个参数 windowTime,指定缓存的「时间限制」,默认为 Infinity,即不限制值的失效时间
*/
const replay$ = new ReplaySubject(1)
replay$.subscribe(value=>{
    console.log(`订阅者replay:${value}`);
    
})
replay$.next(1)
replay$.next(2)
replay$.next(3)
replay$.next(3345)
replay$.subscribe(value=>{
    console.log(`订阅者replay_2:${value}`);
    
})


/* 

*/
const async$ = new AsyncSubject()
async$.subscribe(value=>{
    console.log(`订阅者async:${value}`);
    
})
async$.next('11')
async$.next('22')
async$.next('33')
async$.subscribe(value=>{
    console.log(`订阅者async_b:${value}`);
    
})

async$.complete()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值