Angular 6的subjects与behavior subject的区别
创始人
2024-10-16 07:31:06
0

在Angular 6中,Subjects和BehaviorSubjects都是RxJS库中的两种可观察对象(Observable)。它们之间的区别在于BehaviorSubject在订阅之前保存了最新的值。

下面是一个使用Subjects和BehaviorSubjects的代码示例:

import { Subject, BehaviorSubject } from 'rxjs';

// 使用Subject
const subject = new Subject();

// 订阅Subject
subject.subscribe(value => {
  console.log('Subject:', value);
});

// 发布新的值到Subject
subject.next(1);
subject.next(2);

// 输出:
// Subject: 1
// Subject: 2

// 使用BehaviorSubject
const behaviorSubject = new BehaviorSubject(0);

// 订阅BehaviorSubject
behaviorSubject.subscribe(value => {
  console.log('BehaviorSubject:', value);
});

// 发布新的值到BehaviorSubject
behaviorSubject.next(1);
behaviorSubject.next(2);

// 输出:
// BehaviorSubject: 0
// BehaviorSubject: 1
// BehaviorSubject: 2

在上面的示例中,我们首先创建了一个Subject对象和一个BehaviorSubject对象。然后,我们订阅了这两个对象,并通过调用next()方法发布新的值。

当我们使用Subject时,它只会将新的值发送给订阅者,不会保存最新的值。所以当我们调用subject.next(1)时,订阅者会收到值1,同样地,当我们调用subject.next(2)时,订阅者会收到值2。

然而,当我们使用BehaviorSubject时,它会在订阅之前保存最新的值。在上面的示例中,我们在创建BehaviorSubject时传递了一个初始值0。所以当我们订阅BehaviorSubject时,它会立即发送最新的值0给订阅者。当我们调用behaviorSubject.next(1)时,订阅者会收到值1,同样地,当我们调用behaviorSubject.next(2)时,订阅者会收到值2。

总结来说,Subject在订阅之前不保存最新的值,而BehaviorSubject保存了最新的值,并在订阅时立即发送给订阅者。

相关内容

热门资讯

总算了解!德州圈脚本,hhpo... 1、总算了解!德州圈脚本,hhpoker德州机器人,曝光教程(有挂透明)。2、hhpoker德州机器...
重大来袭!德州透视是真的假的,... 重大来袭!德州透视是真的假的,hhpoker可以开挂吗,解说技巧(有挂透视)1、玩家可以在德州透视是...
发现一款!impoker辅助,... 发现一款!impoker辅助,来玩德州破解器,微扑克教程(有挂教程)是由北京得来玩德州破解器黑科技有...
指导大家!hhpoker有没有... 指导大家!hhpoker有没有作弊挂,agpoker辅助,wpk教程(有挂教程)1、不需要AI权限,...
玩家必知教程!德普之星透视辅助... 玩家必知教程!德普之星透视辅助软件激活码,wepoker透视脚本,教你教程(有挂教程);玩家必备必赢...
每日必看!wepoker透视底... 每日必看!wepoker透视底牌脚本,hhpoker底牌透视脚本,安装教程(有挂技巧);《WPK辅助...
玩家必看教程!德州局hhpok... 玩家必看教程!德州局hhpoker,WePoKer辅助器,黑科技教程(有挂透明)1、点击下载安装,微...
技巧知识分享!wepoker有... 您好,wepoker有没有透视方法这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
盘点十款!大菠萝辅助器,hhp... 自定义hhpoker辅助软件下载系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
最新通报!wepoker怎么设... 最新通报!wepoker怎么设置透视,德扑圈有透视吗,细节揭秘(有挂软件);实战中需综合运用上述技巧...