我正在使用来自rxjs的Behavior主题:
在服务中:

private rights = new BehaviorSubject<Array<string>>([]);


updateRights(rights: Array<string>) {
        this.rights.next(rights);
    }

    getRights(): Observable<any> {
        return this.rights.asObservable();
    }

我会更新根组件中的权限,并在另一个组件中订阅该权限,例如:
 this.configService.getRights().subscribe(res => {
      console.log(res);
    })

此订阅将触发两次,一旦数据为空,然后再次接收到数据,我希望订阅仅触发一次并仅获取最新数据,该怎么办?

最佳答案

BehaviourSubject默认情况下会在订阅时发出该值,这是预期的设计。如果您不希望这种行为,请改用Subject

关于rxjs - 行为主体被解雇两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56145245/

10-10 15:20