我正在嘗試讀取 replaySubject 的所有發出值。
selectedPersons = new ReplaySubject();
sub = new Subscription;
--
ngOnInit() {
this.subscription = this.selectedPersons.subscribe((resp) => {
console.log(this.selectedPersons)
console.log(this.selectedPersons._events) <--- This one doesnt work because its private but i need this values
})
}
--
onSelect(value: Person) {
this.selectedPersons.next(value)
}
資料將在此主題中發出,我想讀取其所有值,而不僅僅是最后一個。最好的方法是什么?
我想在 html 中顯示這些資料 | 異步
uj5u.com熱心網友回復:
我假設每次出現新事件時,您都希望獲得之前到達的所有事件。要實作它,您可以使用scan
this.selectedPersons.pipe(scan((prev, evnt) => prev.concat(evnt), [])).subscribe((resp) => {
console.log(resp); // all events will be here
})
uj5u.com熱心網友回復:
selectedPersons發出的值可以在您提供給 的 lambda 函式中看到subscribe。
this.selectedPersons.subscribe(resp => console.log(resp));
在這種情況下,排放稱為resp。所以這就是您需要記錄的內容。
你可以隨便叫他們:
this.selectedPersons.subscribe(persons => console.log(persons));
如果您在每次發射期間需要所有先前的排放,您可以這樣做:
this.selectedPersons.pipe(
scan((acc, v) => [...acc, v], [])
).subscribe(allPersons => console.log(allPersons));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/379813.html
