gpt4 book ai didi

javascript - RxJS ReplaySubject 观察者长度在下一个之后不会增加

转载 作者:行者123 更新时间:2023-11-30 11:22:33 30 4
gpt4 key购买 nike

根据我目前对 RxJS 中 ReplaySubject 的理解,下面的代码应该可以工作:

import { ReplaySubject } from 'rxjs/ReplaySubject';

private dataObs = new ReplaySubject(1);

get_posts(value) {
console.log(this.dataObs.observers.length);
if (this.dataObs.observers.length) {
console.log('Going cache');
return this.dataObs;
} else {
console.log('Going live');
return this.http.get(`endpoing here`)
.map((res) => {
this.dataObs.next(res);
console.log(this.dataObs.observers.length);
return res;
});
}
}

但事实并非如此,我不明白这一点。

根据我目前的理解,this.dataObs.next(res) 应该使 this.data.observers.length1,从而允许第一个 if block 条件通过。但这并没有发生。

我做错了什么?

最佳答案

您的观察者列表为空的原因是因为您的可观察对象没有观察者。

您的 next() 发射不会向观察者列表添加任何值,它只是添加一个要发送给所有观察者的发射。如果您希望您的观察者列表不为空,请订阅您的主题:

this.dataObs.subscribe();
this.dataObs.observers.length != 0; // => true

关于javascript - RxJS ReplaySubject 观察者长度在下一个之后不会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245964/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com