可以通过使用distinctUntilChanged()操作符来确保BehaviorSubject只在值发生更改时触发,并防止重复触发。示例如下:
import { BehaviorSubject } from 'rxjs';
const subject = new BehaviorSubject('initial value');
subject.subscribe({
next: (val) => console.log('Observer1: ' + val)
});
subject.next('new value1'); // 输出:Observer1: new value1
subject.next('new value1'); // 此时不输出任何内容
subject.subscribe({
next: (val) => console.log('Observer2: ' + val)
});
subject.next('new value2'); // 输出:Observer1: new value2、Observer2: new value2
subject.next('new value2'); // 此时不输出任何内容