Javascript 动态更改rxjs中可观察对象的延迟时间

Javascript 动态更改rxjs中可观察对象的延迟时间,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,我有一个服务请求一些数据并返回一个可观察的,我使用repeatWhen在延迟时间后连续重播此请求: this.delay = 2000; var observ = this.myService.getData() .repeatWhen(completed => completed.delay(this.delay)); this.mySubscription = observ.subscribe(val => this.handleResponse(val)

我有一个服务请求一些数据并返回一个
可观察的
,我使用
repeatWhen
在延迟时间后连续重播此请求:

this.delay = 2000;
var observ = this.myService.getData()
            .repeatWhen(completed => completed.delay(this.delay));
this.mySubscription = observ.subscribe(val => this.handleResponse(val));
我希望能够动态修改
delay
的值,比如在
handleResponse
方法中。我怎样才能做到这一点

例如(伪代码):

.repeatWhen(completed => completed.delay(this.delay));
您的可观察对象已更改,并从
this.delay
中获取其值。在此之后,如果您更改
此.delay
,则在时将不会影响上述
重复。已使用
delay
的初始值创建了可观察对象,它不会每次都去并从
中获取值。在

.repeatWhen(completed => completed.delay(this.delay));

您的可观察对象已更改,并从
this.delay
中获取其值。在此之后,如果您更改
此.delay
,则在
时将不会影响上述
重复。已使用
delay
的初始值创建了可观察对象,它不会每次都去并从
中获取值。delay

感谢您的响应。是否有一种干净的方法来实现这种行为,或者我是否应该每次都以某种方式重建整个可观察对象?您需要每次完成当前可观察对象,以避免内存泄漏,并创建一个具有更改延迟的新可观察对象。当您说完成可观察对象时,当使用repeatWhen时,我如何确保它是完整的?如果有人看到这个并希望保留repeatWhen。对请求使用计时器和开关映射。然后使用一个过滤器。这会阻止它进入订阅块。感谢您的回复。是否有一种干净的方法来实现这种行为,或者我是否应该每次都以某种方式重建整个可观察对象?您需要每次完成当前可观察对象,以避免内存泄漏,并创建一个具有更改延迟的新可观察对象。当您说完成可观察对象时,当使用repeatWhen时,我如何确保它是完整的?如果有人看到这个并希望保留repeatWhen。对请求使用计时器和开关映射。然后使用一个过滤器。这会阻止它进入订阅块。