BehaviorSubject 会传递值,但是需要在订阅之前提供一个初始值。如果你在订阅之前没有提供初始值,那么订阅者将无法接收到任何值。
下面是一个示例代码,展示了如何使用 BehaviorSubject 并提供初始值:
import { BehaviorSubject } from 'rxjs';
// 创建一个 BehaviorSubject,并提供初始值
const subject = new BehaviorSubject('初始值');
// 订阅 BehaviorSubject
subject.subscribe(value => {
console.log('订阅者1:', value);
});
// 输出:订阅者1: 初始值
// 更新 BehaviorSubject 的值
subject.next('新值');
// 输出:订阅者1: 新值
在这个示例中,我们创建了一个 BehaviorSubject,并提供了初始值 '初始值'
。然后我们订阅了这个 BehaviorSubject,并在订阅回调中打印了接收到的值。
当我们调用 subject.next('新值')
更新 BehaviorSubject 的值时,订阅者会收到新的值 '新值'
。
这样,在订阅之前提供初始值,并使用 next
方法来更新值,就可以确保 BehaviorSubject 传递值给订阅者。