簡體   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