angular-rxjs

一. rxjs 发布订阅模式使用

    1. 发布订阅模式简单来说就是发布了一个主题后,其所有的订阅者都会收到这个主题下的消息。可以理解成QQ群,创建QQ群就是发布主题,加入QQ群就是订阅。订阅之后你就会收到这个QQ群的消息

    2. 发布主题

import { Observable, Subject } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class MessageService {
  subject = new Subject(); // 新建一个实例就相当于一个主题
}

   3. 订阅主题,首先你得创建一个订阅者对象作为订阅参数。这里时可以多个对象重复加入的,相当于多人加群

    const object = {
      next: value => console.log(value), // 当有新的消息产生会触发
      error: value => console.log(value), // 报错时粗发
      complete: () => console.log('complate') // 当主题结束时触发
    }
    this.subject.subscribe(object);

   4. 接下来就可以发送消息了

this.subject.next(‘发送的内容,任意值’)

二. 介绍几个常用的主题

import { Observable, Subject, BehaviorSubject, ReplaySubject, AsyncSubject } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class MessageService {
  subject = new Subject(); // 普通的
  BehaviorSubject = new BehaviorSubject(0); // 订阅会立马推送一次默认值,参数就是默认值
  ReplaySubject = new ReplaySubject(2); // 会推送最后的N个值,N是这里传的2
  AsyncSubject = new AsyncSubject(); // 会在complete后发送最后一个值,之后新订阅的也会推送。但是complete之前不会推送
}

推荐文章: https://segmentfault.com/a/1190000008886598

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值