Rxjs 如何使可观察对象仅发射最新值而不发射过去值
我有一个Rxjs 如何使可观察对象仅发射最新值而不发射过去值,rxjs,angular6,angular2-observables,rxjs-observables,Rxjs,Angular6,Angular2 Observables,Rxjs Observables,我有一个ConnectableObservable,它是行为主题的一部分 question$: ConnectableObservable<Result>; private questionSubject: BehaviorSubject<Result>; this.questionSubject = new BehaviorSubject<Result>(new Result('initial',{})); this.question$ = (this.
ConnectableObservable
,它是行为主题的一部分
question$: ConnectableObservable<Result>;
private questionSubject: BehaviorSubject<Result>;
this.questionSubject = new BehaviorSubject<Result>(new Result('initial',{}));
this.question$ = (this.questionSubject.asObservable()).pipe(publish()) as ConnectableObservable<Result>;
主题
似乎也在发出过去的值
jsonQuestion response: {"question-id":"78830909-b23e-4345-bc69-63f3ce039b20",...} //SUBJECT SENDS THIS
question-details.component.ts:369 got stream value Result {result: "success", additionalInfo: "{"question-id":"78830909-b23e-4345-bc69-63f3ce039b…2-ae23-f284213ff80a"},"is-question-creator":true}"}// OBSERVABLE RECEIVED THIS
... AND THE SAME TRACE COMES AGAIN!!
question-details.component.ts:369 got stream value Result {result: "success", additionalInfo: "{"question-id":"78830909-b23e-4345-bc69-63f3ce039b…2-ae23-f284213ff80a"},"is-question-creator":true}"}
为什么可观察对象发送多个值。如何使其仅发送最新值?当您看到Subject或Behavior Subject发出多条相同的消息时,问题可能是您有多个订阅
您可以通过多次订阅或不适当地处理订阅来获得多个订阅
我必须查看您的订阅才能更具体一些。:-) 当您看到Subject或BehaviorSubject发出多条相同的消息时,问题可能是您有多个订阅
您可以通过多次订阅或不适当地处理订阅来获得多个订阅
我必须查看您的订阅才能更具体一些。:-) 这就是BehaviorSubject
所做的。它总是首先发出缓冲值。也许您需要改用Subject?您对此有多个订阅。问题$?生成这些消息的详细代码是什么样子的?DeborahK-你这个天才!问题确实是多个订阅。我的组件将订阅,但我没有在onDestroy
上取消订阅。为了每个人的利益,请您提交一份答案,解释为什么会出现多个订阅?完成………这就是行为主体
的作用。它总是首先发出缓冲值。也许您需要改用Subject?您对此有多个订阅。问题$?生成这些消息的详细代码是什么样子的?DeborahK-你这个天才!问题确实是多个订阅。我的组件将订阅,但我没有在onDestroy
上取消订阅。为了每个人的利益,请您提交一份答案,解释为什么会出现多个订阅问题?完成。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
jsonQuestion response: {"question-id":"78830909-b23e-4345-bc69-63f3ce039b20",...} //SUBJECT SENDS THIS
question-details.component.ts:369 got stream value Result {result: "success", additionalInfo: "{"question-id":"78830909-b23e-4345-bc69-63f3ce039b…2-ae23-f284213ff80a"},"is-question-creator":true}"}// OBSERVABLE RECEIVED THIS
... AND THE SAME TRACE COMES AGAIN!!
question-details.component.ts:369 got stream value Result {result: "success", additionalInfo: "{"question-id":"78830909-b23e-4345-bc69-63f3ce039b…2-ae23-f284213ff80a"},"is-question-creator":true}"}