rxjs:如何理解这种测试行为
在我的应用程序中,我遇到了一个与rxjs:如何理解这种测试行为,rxjs,combinelatest,Rxjs,Combinelatest,在我的应用程序中,我遇到了一个与combinelateest操作符相关的奇怪行为。我在在线演示中复制了这个问题: 注意:请忽略这个演示中的业务逻辑,它没有那么合理,我只想在技术层面上重现这个问题 此方法使用CombineTest组合两个观察值:limit$和offset$。并向API发送请求,其中limit和offset的值只是API的参数 我用以下方法将计数器值每5秒增加1: let counter = 1 setInterval(() => { this.offsetContro
combinelateest
操作符相关的奇怪行为。我在在线演示中复制了这个问题:注意:请忽略这个演示中的业务逻辑,它没有那么合理,我只想在技术层面上重现这个问题
此方法使用CombineTest组合两个观察值:limit$和offset$。并向API发送请求,其中limit和offset的值只是API的参数
我用以下方法将计数器值每5秒增加1:
let counter = 1
setInterval(() => {
this.offsetControl.setValue(counter)
counter++;
}, 5000)
最后,出于某种原因,我需要每隔6秒间隔调用testRequest方法,方法如下:
setInterval(() => {
this.testRequest();
}, 6000)
那么网络请求行为如下所示:
limit=5&offset=0
limit=5&offset=1
limit=5&offset=0
limit=5&offset=2
limit=5&offset=0
limit=5&offset=3
...
limit=5&offset=0
limit=5&offset=n
我不明白为什么
limit=5&offset=0
重复出现。谢谢。每次执行testRequest时,您都在创建一个新的可观察对象,这不是您想要做的,每次重新创建可观察对象时,您都会得到StartWith值,当您调用StartWith时,该值为零
去掉最新的组合,只需从表单控件中提取值
每次执行testRequest时,您都在创建一个新的可观察对象,这不是您想要做的,每次重新创建可观察对象时,您都会得到StartWith值,当您调用StartWith时,该值为零 去掉最新的组合,只需从表单控件中提取值
如果是这样,每次创建一个新的可观察对象,以及为什么它只有一个值(5,0)。由于偏移量一直在更新,为什么新的可观察对象没有(5,1)(5,2)…(5,n)每次新订阅CombineTest时,您都会得到值为5和0的StartS,它会完全按照您的要求执行。如果是这样,每次创建新的可观察对象时,为什么它只有一个值(5,0)。由于偏移量不断更新,为什么新的可观测对象没有(5,1)(5,2)…(5,n)每次新订阅CombineTest时,您都会得到值为5和0的StartTest,它会完全按照您告诉它的做。
limit=5&offset=0
limit=5&offset=1
limit=5&offset=0
limit=5&offset=2
limit=5&offset=0
limit=5&offset=3
...
limit=5&offset=0
limit=5&offset=n