【问题标题】:Why RxJS Subject cannot access latest data in angular component?为什么 RxJS Subject 无法访问 Angular 组件中的最新数据?
【发布时间】:2021-11-30 04:48:43
【问题描述】:

这是我在两个不相关的组件之间进行通信的方式。组件 B 试图从组件 A 访问 myObj。这很奇怪 this.myObj 并不总是指向最新数据。有什么理由吗?

component A {
      myService.pubSub.subscribe((data)=>{
        if(data.type == "getMyObj"){
            myService.pubSub.next(this.myObj);
        }
      });
}

component B {
     myService.pubSub.next({type: "getMyObj"});
}

myService.pubSub 只是服务中的一个主题。

【问题讨论】:

  • 我不明白。 myService.pubSub.subscribe((data)=>{ if(data.type == "getMyObj"){ myService.pubSub.next(this.myObj); } });订阅的时候更新的是同一个主题吗?
  • 只是服务中的主题。是的,我正在发布同一主题。
  • 那会一直循环,不是吗?组件 A 将始终调用 next

标签: angular rxjs


【解决方案1】:

我得到了答案。问题是,我没有取消订阅该主题,并且有多个订阅。所以一旦我取消订阅,它就解决了这个问题。

sub.unsubscribe();

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    相关资源
    最近更新 更多