繁体   English   中英

Angular 6 主题与行为主题

[英]Angular 6 subjects vs behavior subject

我已经开发了一个应用程序,该应用程序使用行为主题为所有组件进行数据传输,使用可观察概念真的是一个好习惯。

import { BehaviorSubject } from 'rxjs';

const subject = new BehaviorSubject(123);

// two new subscribers will get initial value => output: 123, 123
subject.subscribe(console.log);
subject.subscribe(console.log);

// two subscribers will get new value => output: 456, 456
subject.next(456);

// new subscriber will get latest value (456) => output: 456
subject.subscribe(console.log);

Subject :一个 Subject observable 用于立即通知订阅者它发出的更新值。 它不会跟踪旧值,即如果一个 Subject observable 首先发出一个值然后被订阅,那么订阅者将不会得到那个值。 您可以将主题视为实时更新/提要。 从创建到订阅期间发出的旧值不会保留; 只能捕获订阅后发出的值。

BehaviorSubject : BehaviorSubject 的行为类似于普通的 Observable,但它有一个额外的功能,即它保留最后发出的值。 这意味着如果一个值是从 BehaviorSubject 之前发出的,并且如果在发出该值之后添加了订阅,那么订阅将给出最后发出的值。 也可以使用 BehaviorSubject 上的 .value 检索 BehaviorSubject 最后一个值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM