Почему субъект RxJS не может получить доступ к последним данным в угловом компоненте?

#angular #rxjs

#угловой #rxjs

Вопрос:

Вот как я общаюсь между двумя несвязанными компонентами. Компонент B пытается получить доступ к myObj из компонента A. Странно, что this.myObj это не всегда указывает на последние данные. Есть какая-нибудь причина, почему ?

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

Где myService.pubSub находится просто объект в сервисе.

Комментарии:

1. Я не понимаю. myService.pubSub.subscribe((data)=gt;{ if(data.type == "getMyObj"){ myService.pubSub.next(this.myObj); } }); Обновляете ли вы ту же тему, когда подписываетесь на нее?

2. Это просто тема в сервисе. Да, я публикуюсь на ту же тему.

3. Это будет продолжаться по кругу, не так ли? Компонент А всегда будет вызывать next

Ответ №1:

Я получил ответ. Проблема заключалась в том, что я не отказывался от подписки на эту тему, и было несколько подписок. Поэтому, как только я отписался, это решило проблему.

 sub.unsubscribe();